【发布时间】:2013-12-11 14:39:19
【问题描述】:
本例中的i 何时可以取消分配?
int i;
try
{
i = 2;
}
catch
{
i = 3;
}
finally
{
string a = i.ToString();
}
【问题讨论】:
-
输入 int i = 0;一开始
-
我知道如何避免错误,我想知道为什么编译器认为这可能是未分配的
-
您的代码中很少有没有单一内存分配的情况。对于看似相同的问题,除了
object i;,如果内存不足,i = 2;和i = 3;都可能会抛出,此时finally处理程序在初始化之前确实会看到i。
标签: c# try-catch local-variables unassigned-variable