クラスの課題に取り組んでいますが、コンパイルできません。"Use of unassigned local variable"
との両方multiplierString
を取得し続けMultiplcandString
ます。メインの先頭で宣言されていますが、 while ループ内でそれらに値を割り当てているようには見えません。ループ外の値を強制すると、エラーはなくなります。どんな助けでも大歓迎です。ありがとう。
ここで何が起こっているのですか?
static void Main()
{
bool goodInput = false;
ConsoleKeyInfo cki;
string multiplicandString;
string multiplierString;
string endProduct;
string prompt;
string response;
Int64 TryNumber;
prompt = "This program will multiply two numbers of reasonable length.";
Console.WriteLine(prompt);
Console.WriteLine();
prompt = "Press the Escape (Esc) key to quit or any other key to continue.";
cki = Console.ReadKey();
if (cki.Key != ConsoleKey.Escape)
{
while (!goodInput)
{
prompt = "Please provide the multiplicand: ";
Console.WriteLine(prompt);
response = Console.ReadLine();
if (Int64.TryParse(response, out TryNumber))
{
goodInput = true;
multiplicandString = "a"; //TryNumber.ToString();
}
else
{
Console.WriteLine();
prompt = "Invalid multiplicand entry. It must be all numbers.\a";
Console.WriteLine(prompt);
prompt = "Please try again.";
Console.WriteLine(prompt);
} // end if Int64.TryParse
} // end while ! goodInput
goodInput = false;
while (!goodInput)
{
prompt = "Please provide the multiplier: ";
Console.WriteLine(prompt);
response = Console.ReadLine();
if (Int64.TryParse(response, out TryNumber))
{
goodInput = true;
multiplierString = "a"; //TryNumber.ToString();
}
else
{
Console.WriteLine();
prompt = "Invalid multiplier entry. It must be all numbers.\a";
Console.WriteLine(prompt);
prompt = "Please try again.";
Console.WriteLine(prompt);
} // end if Int64.TryParse
} // end while ! goodInput
//multiplierString = "a"; //TryNumber.ToString();
endProduct = MultiplyByRectangle(multiplicandString, multiplierString);
Console.WriteLine("The result of the calculation is:");
Console.WriteLine("\t" + endProduct);
} // end Main()