请帮助我理解以下语句生成编译错误的原因:在while语句中定义变量是错误的吗?
while((string _l = _sr.ReadLine()) != null){
_sb.AppendLine(_l);
}
//表达式术语"string"无效
是的,您需要在循环外声明它:
string _l;
while((_l = _sr.ReadLine()) != null){
_sb.AppendLine(_l);
}
规范将while
语句定义为:
8.8.1 while语句
while语句:
while(布尔表达式)嵌入语句
由于变量声明不是布尔表达式,因此不能将它们放入while循环的条件中。
找到类似的问题和答案:
由于while循环接受一个条件,所以每次运行循环时都要声明一个新的行实例,因为每次通过循环都会评估该条件
在"while"循环中,为什么可以';我不把条件中的变量声明为"for"循环中的变量吗?