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

SPT*_*eam 1 c# variables

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

使用未分配的局部变量

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

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

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

if (myCondition){
    web.Dispose()
}
Run Code Online (Sandbox Code Playgroud)

And*_*rei 7

只需将其设置为null即可确保它完全初始化:

Web web = null;
Run Code Online (Sandbox Code Playgroud)

然后,在处理时,更好地检查变量是否为空,以确保在必要时始终处置:

if (web != null){
    web.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

另请注意,Dispose如果在循环中抛出异常,则不会全部都是如此.所以你可能想把它全部包装在try/finally中.

但是,因为它已经到了那么远 - 你考虑使用