私はちょうどボタンとテキストボックス(tbxSum)からなる基本的な小さな電卓を作ってきました。以前にtryブロックで割り当てられたcatchブロック内の変数を使用する方法はありますか?
無効な合計が入力された場合、私のキャッチブロックがそれを拾い上げて、テキストボックスの内容を電卓の最新の結果と置き換えてほしいという問題があります。 't)。
だから私が言うと言う:
3 + 3 = 6
は私の電卓は今、次の和のためにテキストボックスに6を入れます。
それでは、私がやったと言う:
6 // 3
それは電卓がピックアップされ、無効なのですが、私はテキストボックスの値が前の合計から6に戻りたいです。
これは私が試したものです:
var myButton = (Button)sender;
if (myButton.Content.ToString() == "=")
{
DataTable dt = new DataTable();
string s = tbxSum.Text;
string result = "";
if (s.Contains("("))
{
s = s.Replace("(", "*(");
}
try
{
var v = dt.Compute(s, "");
tbkSum.Text = s + "=" + v.ToString();
tbxSum.Text = v.ToString();
}
catch
{
MessageBox.Show("Invalid Sum");
tbxSum.Text = result;
}
}
私もそう、私は多分私は、等号の右側にそこにすべてのものを取ることができる前の合計を示してテキストブロック(tbkSum)を考えているが、私はそれをどうやって行うのか分かりません。
問題は、あなたが最後の良好な計算の変数を格納する必要があるということです。したがって、計算が行われるクラスの大域変数を、良い計算の時点で作成し、その変数を回答と同じに設定します。不正な計算の場合は、テキストボックスを前の値に戻します(存在する場合) ) – Draken