C#局部变量

Joh*_*ann 1 c# variables local

有人可以解释我为什么得到:

"使用未分配的局部变量number_of_column":if(i <number_of_column -1)

什么是处理这个问题的最佳方法?

static void Main(string[] args)
{ 
    int number_of_column;
    if (Directory.Exists(path))
    {
        var file = dir.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
        string file1 = file.ToString();
        Console.WriteLine(file1);
        StreamReader sr = new StreamReader(path + "\\" + file1);
        string line;
        while ((line = sr.ReadLine()) != null)
        {
            if (start == true)
            {
                string[] line1 = line.Split(',');
                number_of_column = line1.Count();
                i = 0;
                foreach (string s in line1)
                {
                    if ((s != "0") || (!string.IsNullOrEmpty(s)))
                    {
                        col[i] = "checked";

                    }
                    i++;
                }
            }
            else
            {
                if (line.Contains("Timestamp") && line.Contains("LiveStandby") && line.Contains("peak"))
                {
                    start = true;

                }
            }
        }
        sr.Close();

        i=0;
        foreach (string s in col)
        {
            if (i < number_of_column -1)
            {
Run Code Online (Sandbox Code Playgroud)

thu*_*eys 7

如果您从未进入while循环,则该变量没有指定值.

如果你点击if中的else分支,则该变量没有赋值.

这些是您收到此错误消息的原因.

您可以通过在声明变量时指定值来解决此问题.

C#要求您在使用之前初始化局部变量.对于成员变量,这不是必需的,它们会自动分配默认值.