簡體   English   中英

C#檢查條件后初始化變量

[英]C# initialize variable after checking a condition

我只需要使用檢查條件后初始化的變量。
我得到錯誤:

使用未分配的局部變量

編譯是否不檢查條件是否相同?
這是我的代碼。 我該如何解決?

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

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

if (myCondition){
    web.Dispose()
}

只需將其設置為null即可確保它已初始化:

Web web = null;

然后,在進行處置時,最好檢查變量是否為null,以確保始終在必要時進行處置:

if (web != null){
    web.Dispose();
}

另請注意,如果在循環中引發異常,則不會全部“ Dispose ”。 因此,您可能希望將其全部包裝在try / final中。

但是,既然已經走了那么遠-您是否考慮過使用

嘗試這樣的事情:

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

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

if (myCondition)
{
    web.Dispose()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM