变量位置问题,C#

lol*_*ola 2 c#

代码有什么问题?为什么第二次报告显示错误?

string level;
int key;

command.CommandText = "SELECT * FROM user WHERE name = 'admin'";

connection.Open();
Reader = command.ExecuteReader();

while (Reader.Read())
{
    level = Convert.ToString(Reader["level"]);
    key = Convert.ToInt32(Reader["key"]);

    MessageBox.Show(level); //Work fine
}

MessageBox.Show(level); //Show error:  Use of unassigned local variable 'level'
Run Code Online (Sandbox Code Playgroud)

Mat*_*eer 6

编译器无法知道level获得了值.尽管如此,Reader.Read()总是返回false,从而使得没有值的级别.

最常见的解决方案是将级别初始化为null(或者我同意AdaTheDev,string.Empty也可能是一个不错的选择)