我正在为班级分配作业,但无法编译。我不断得到"Use of unassigned local variable"
两者multiplierString
和MultiplcandString
。在 main 的顶部声明了它们,但它似乎没有在 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()