检查条件后C#初始化变量

时间:2014-12-30 16:08:51

标签: c# variables

我需要在检查条件后才使用初始化的变量 我收到错误:

  

使用未分配的局部变量

编译是否检查条件是否相同? 这是我的代码。我该如何解决?

Web web;
if (myCondition){
    //heavy operation
    web = site.openWeb();
}

for ( n loop)
{
    //do stuff
    if (myCondition){
        //use web
    }
}

if (myCondition){
    web.Dispose()
}

2 个答案:

答案 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()
}