use*_*020 -1 c# compiler-errors
在下面的示例中,编译器生成错误"使用未分配的局部变量r",即使我在使用它之前在循环中分配变量.为什么编译器会生成此错误?
static void Main(string[] args)
{
float r;
for (int i = 0; i < 100; i++)
r = i; // assigned here
Console.WriteLine(r); // error: use of unassigned local variable
}
Run Code Online (Sandbox Code Playgroud)
AGB*_*AGB 10
只要检测到未分配变量的可能性,编译器就会生成该错误.由于for不保证循环体(例如for(int i = 123; i < 0; i++))不认为变量被无条件地分配,因此产生编译器错误.
从文档:
C#编译器不允许使用未初始化的变量.如果编译器检测到可能尚未初始化的变量的使用,则会生成编译器错误CS0165.有关更多信息,请参阅字段(C#编程指南).请注意,当编译器遇到可能导致使用未分配变量的构造时,即使您的特定代码没有,也会生成此错误.这避免了对于明确赋值的过于复杂的规则的必要性.
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |