これが小さなことであり、大きな問題ではないことを願っています。私は、演算子を要求するプログラム(本を介した自己教育)をコーディングしています。次に、数値の配列を使用して演算子を適用し、結果を取得します。プログラムは数字の入力を求めず、空の配列を想定しています。配列に数値を入力するように要求されるように再コード化する方法ではなく、何が問題なのかを理解していると思います。
もう 1 つ気になっているのは、Operator が有効でない場合、クラス コードの最初のスイッチでプログラムを強制的に終了させることはできますか? Application.Exit() を見つけましたが、それは WinForms でしか機能しないようです。同等の C# コードはありますか?
私の主な方法は次のとおりです。
static void Main(string[] args)
{
MathMethodClass mathMethods = new MathMethodClass();
int[] intArray = new int[] { };
Console.Write("Choose an Operator + or *: ");
string whichOp = Console.ReadLine();
Console.WriteLine("Thank you. You chose {0}.", mathMethods.OperatorName(whichOp));
Console.WriteLine("Please enter an array of numbers: ");
for (int i=0;i<intArray.Length;i++)
{
intArray[i] = Int32.Parse(Console.ReadLine());
}
Console.WriteLine("Thank you. You entered the numbers {0}", intArray);
Console.WriteLine("The answer is: {0}.", mathMethods.MathMethod(whichOp, intArray));
Console.ReadLine();
}
そして、私のクラスは次のとおりです。
class MathMethodClass
{
public string OperatorName(string whichOp)
{
switch (whichOp)
{
case "+":
whichOp = "addition";
break;
case "*":
whichOp = "multiplication";
break;
default:
Console.WriteLine("Error: Unknown Operator. Exiting ...");
Console.ReadLine();
break;
}
return whichOp;
}
public int MathMethod(string whichOp, params int[] theNums)
{
int theAnswer = 0;
switch (whichOp)
{
case "+":
for (int ct = 0; ct < theNums.Length; ct++)
{
theAnswer += theNums[ct];
}
break;
case "*":
for (int ct = 0; ct < theNums.Length; ct++)
{
theAnswer *= theNums[ct];
}
break;
default:
Console.WriteLine("Error. Something went wrong in the MathMethod. Exiting ...");
Console.ReadLine();
break;
}
return theAnswer;
}
}
どこが間違っているのかを教えてくれると助かります。
ありがとう。