2009-10-02 26 views

回答

6

您可以用大括號限制值類型變量的作用域。

{ 
    var x = 3; 
    doSomethingWith(x); 
} 
generateCompilerError(x); 

最後一行將產生如x不再定義編譯錯誤。

這也適用於對象類型,但不能保證對象在超出範圍之後何時處理。爲了確保其實現IDisposable該對象類型設置及時使用using

using (var x = new YourObject()) 
{ 
    doSomethingWith(x); 
} 
generateCompilerError(x); 
+0

此外,人們在談論「塊級別範圍」 – Matt 2009-10-02 13:38:29

1

您可以使用塊範圍名稱。從C#規格:

8.2塊

塊允許在一個單一的語句被允許上下文中編寫多個語句。

塊:{語句listopt}

A嵌段由一個可選 語句列表(§8.2.1),封閉在 括號。如果語句清單 省略,則該塊被稱爲 爲空。

一個塊可能包含聲明 聲明(§8.5)。 塊中聲明的 局部變量或常量的範圍是該塊。

在一個塊中,表達式上下文中使用的名稱 的含義必須始終相同(第7.5.2.1節)。