为什么这个C#代码会出错?

sup*_*er9 0 c#

真正的新手问题,但为什么这不起作用?我正进入(状态

使用未分配的变量'比较'

作为错误

        string comparison;
        Console.WriteLine("Enter the first number");
        int firstNum = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Enter the second number");
        int secondNum = Convert.ToInt32(Console.ReadLine());
        if (firstNum == secondNum)
            comparison = "equals to";
        if (firstNum < secondNum)
            comparison = "less than";
        if (firstNum > secondNum)
            comparison = "greater than";
        Console.WriteLine("{0}",comparison);
Run Code Online (Sandbox Code Playgroud)

Jes*_*cer 12

因为编译器不知道comparison是在可执行路径中.将三个更改ifs为if-then-elses:

    if (firstNum == secondNum)
        comparison = "equals to";
    else if (firstNum < secondNum)
        comparison = "less than";
    else
        comparison = "greater than";
Run Code Online (Sandbox Code Playgroud)

它会起作用


Lee*_*Lee 5

这几乎是自我解释 - 无法保证比较(具有值),并且编译器因此而抛出错误.

基本上你的if语句可能永远不会将值设置为'比较',这就是它失败的原因.

围绕这个快速而肮脏的方式是以类似于此的方式声明比较

string comparison = "unassigned";

要么

string comparison = String.Empty;