まず、これは私が取り組んでいる課題ですが、これは必須条件ではありません。私はdecimalメソッドでtry/catchステートメントを使用しようとしています。小数点以下のメソッドでtry/catchを実行するC#
private decimal NewCar()
{
decimal newCar = 0.00m;
try
{
newCar = decimal.Parse(vehicleTextBox.Text);
}
catch (FormatException)
{
MessageBox.Show("Invalid entry (Format Exception). \n" + "Please enter a valid decimal number.");
Keyboard.Focus(vehicleTextBox);
vehicleTextBox.SelectAll();
return;
}
catch (Exception)
{
MessageBox.Show("Invalid entry (General Exception). \n" + "Please enter a valid decimal number.");
Keyboard.Focus(vehicleTextBox);
vehicleTextBox.SelectAll();
return;
}
if (newCar < 0)
{
MessageBox.Show("Invalid entry (Negative Value). \n" + "Please enter a valid decimal number.");
Keyboard.Focus(vehicleTextBox);
vehicleTextBox.SelectAll();
return;
}
return newCar;
}
私が得る、私は「『小数』にコンバーチブル型のオブジェクトが必要です」というエラーが出るが、私はそこnewCar変数を入れた場合、またはのtry/catchでreturn文を削除あまりにも多くのメッセージボックスと計算を停止しません。他の計算で使用する小数の方法である必要があります。
助けてください。
は、それが有効な入力であるかどうかを調べるためにトライキャッチを使用しないでください。一般に、これは良い習慣ではありません。代わりにDecimal.TryParseを使用してください。 –
newcarメソッドを呼び出したイベントはありますか?そのコードを表示することもできますか?また、何も返さないreturn文を使用して、ある種の戻り値型を持つメソッドから戻ることはできません。 –
私はこれを私の望むように動作させることができず、 'calculate_button'メソッドの中で' try-catch'を使うことに決めました。計算に使われたさまざまなメソッドで 'decimal.Parse(vehicleTextBox.Text)'を参照しました。 。すべてが今やうまくいくようです、回答の皆様に感謝します! – Jaqtaris