不识别c#.net中声明的变量

时间:2014-10-26 20:58:19

标签: c# .net

最后但第3行代码无法识别我已声明并填充字符串的变量。

    static void Main(string[] args)
    {
        string inputNumber = "1979";

        string input1 = inputNumber.Substring(0, 1);
        string input2 = inputNumber.Substring(1, 1);
        string input3 = inputNumber.Substring(2, 1);
        string input4 = inputNumber.Substring(3, 1);

        int intInput1;
        int intInput2;
        int intInput3;
        int intInput4;

        intInput1 = Convert.ToInt32(input1);
        intInput2 = Convert.ToInt32(input2);
        intInput3 = Convert.ToInt32(input3);
        intInput4 = Convert.ToInt32(input4);

        string stringOutput1;
        string stringOutput2;
        string stringOutput3;
        string stringOutput4;

        // 1000 Input.
        switch (intInput1)
        {
            case 1:
                stringOutput1 = "M";
                break;
            default:
                break;
        }

        //100 Input
        switch (intInput2)
        {
            case 9:
                stringOutput2 = "CM";
                break;
            default:
                break;
        }

        //10 Input
        switch (intInput3)
        {
            case 7:
                stringOutput3 = "LXX";
                break;
            default:
                break;
        }

        //1 Input
        switch (intInput4)
        {
            case 9:
                stringOutput4 = "IX";
                break;
            default:
                break;
        }

        //Use of unassigned local variable error is showing for 'stringOutput1', 'stringOutput2', 'stringOutput3' and 'stringOutput4'
        Console.WriteLine("{0} is {1}{2}{3}{4} in Roman Numerals",inputNumber, stringOutput1, stringOutput2, stringOutput3, stringOutput4);
        Console.CursorVisible = false;
        Console.ReadKey();
    }

P.S。我知道通过注释

来填充变量
 Console.WriteLine("{0} is {1}{2}{3}{4} in Roman Numerals",inputNumber, stringOutput1, stringOutput2, stringOutput3, stringOutput4);

并使用断点并踩过代码。

3 个答案:

答案 0 :(得分:3)

这是因为您的变量可能尚未分配任何内容。必须保证变量在被使用之前已经分配了一些东西。作为一个简单的修复,您可以使用如下声明:

string stringOutput1 = "";

答案 1 :(得分:1)

尝试为声明分配空值

string stringOutput1 = null;
string stringOutput2 = null;
string stringOutput3 = null;
string stringOutput4 = null;

答案 2 :(得分:0)

你必须初始化你的变量,就这样做。

string stringOutput1 , stringOutput1, stringOutput3, stringOutput4 = string.Empty;

您还可以为每个变量分配默认值。

string stringOutput1 = "foo1", stringOutput1 = "foo2"
, stringOutput3= "foo3", stringOutput4 = "foo4";