電卓アプリケーションを作成しています。ビジネス ロジックを UI から分離して、コードの保守性を改善し、単体テストを改善しようとしています。
ユーザーがアプリケーションのさまざまなボタンをクリックしたときに何が起こるかを管理する CalculatorUI クラスを作成しました。
また、計算を実行する Calculator クラスも作成し、ユーザーの要件に基づいて計算結果を検証します。CalculatorUI は、Calculator クラスのインスタンスを作成し、Calculator クラスの関数を呼び出して、ユーザーのクリックに応答します。私の質問は、Calculator クラスで、テキスト ボックスをクリアしてメッセージ ボックスを表示し、無効な結果をユーザーに認識させるコードをどのように記述すればよいかということです。
私はプログラミングを始めたばかりで、同僚の 1 人 (上級レベルのプログラマー) によると、UI をビジネス ロジックおよびデータベースから分離しておくのがベスト プラクティスです。
「txtDisplay」と「resultValue」が現在のコンテキストに存在しないというエラーが表示されます...また、ブール変数をどのように使用すればよいですか?
電卓クラスの私のコードは次のとおりです。
class Calculator
{
public double Addition(double value1, double value2)
{
double result = 0;
result = value1 + value2;
return result;
}
public double Subtraction(double value1, double value2)
{
double result = 0;
result = value1 - value2;
return result;
}
public double Multiplication(double value1, double value2)
{
double result = 0;
result = value1 * value2;
return result;
}
public double Division(double value1, double value2)
{
double result = 0;
result = value1 / value2;
return result;
}
public bool CalculationValidation(double result)
{
bool isValid;
bool isFalse;
// determine if the initial result is within the specified range
if ((result < -4000000000) || (result > 4000000000))
{
MessageBox.Show("The result is too large or small to be displayed.");
txtDisplay.text = "0";
resultValue = 0;
return;
}
// round the result if necessary
string test = result.ToString();
if (test.Contains("."))
{
test = (Math.Round(double.Parse(test), 10 - test.Split('.')[0].Count())).ToString();
}
else if (test.Length > 10)
{
test = (Math.Round(double.Parse(test), 10).ToString());
}
txtDisplay.Text = test;
}
}