我需要在检查条件后才使用初始化的变量 我收到错误:
使用未分配的局部变量
编译是否检查条件是否相同? 这是我的代码。我该如何解决?
Web web;
if (myCondition){
//heavy operation
web = site.openWeb();
}
for ( n loop)
{
//do stuff
if (myCondition){
//use web
}
}
if (myCondition){
web.Dispose()
}
答案 0 :(得分:7)
只需将其设置为null即可确保它完全初始化:
Web web = null;
然后,在处理时,更好地检查变量是否为空,以确保在必要时始终处置:
if (web != null){
web.Dispose();
}
另请注意,如果循环中抛出异常,则不会全部Dispose
。所以你可能想把它全部包装在try / finally中。
但是到目前为止 - 你考虑过using吗?
答案 1 :(得分:0)
尝试这样的事情:
Web web = null;
if (myCondition)
{
//heavy operation
web = site.openWeb();
}
for ( n loop)
{
//do stuff
if (myCondition)
{
//use web
}
}
if (myCondition)
{
web.Dispose()
}