C# 错误 : Use of unassigned local variable

标签 c# initialization

我不确定为什么会收到此错误,但这段代码不应该编译吗,因为我已经在检查队列是否正在初始化?

public static void Main(String[] args)
{
    Byte maxSize;
    Queue queue;

    if(args.Length != 0)
    {
        if(Byte.TryParse(args[0], out maxSize))
            queue = new Queue(){MaxSize = maxSize};
        else
            Environment.Exit(0);
    }
    else
    {
        Environment.Exit(0);
    }

    for(Byte j = 0; j < queue.MaxSize; j++)
        queue.Insert(j);
    for(Byte j = 0; j < queue.MaxSize; j++)
        Console.WriteLine(queue.Remove());
}

因此,如果队列未初始化,那么 for 循环就无法访问,对吧?由于程序已经以 Environment.Exit(0) 终止?

希望大家多多指点:)

谢谢。

最佳答案

编译器不知道 Environment.Exit() 将终止程序;它只是看到你在一个类上执行一个静态方法。只需在声明时将 queue 初始化为 null。

Queue queue = null;

关于C# 错误 : Use of unassigned local variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/256073/

相关文章:

c# - 如何从逗号分隔的文件中读取值?

C# Response.Write pdf 不适用于 Android 浏览器

c - 为什么这个赋值在函数之外不起作用?

python - __init__ 可以用作正常的初始化方法,而不是构造函数吗?

c# - c#中的声明是分配内存还是分配内存的新运算符?

vba - Scripting.Dictionary 的干净初始化

c# - 为什么单击按钮后我的更新按钮文本不显示?

c# - XNA查找玩家最近的向量

c# - 如何通过 C# 使用 Java Applet?

使用函数中的 const 指针进行编译时初始化