在一些語言中,也有這樣的事情:C#:適用範圍,特定變量綁定
Lisp語言:
(let ((x 3))
(do-something-with x))
的JavaScript:
let (x = 3) {
doSomethingWith(x);
}
有沒有這樣的事情在C#中?
在一些語言中,也有這樣的事情:C#:適用範圍,特定變量綁定
Lisp語言:
(let ((x 3))
(do-something-with x))
的JavaScript:
let (x = 3) {
doSomethingWith(x);
}
有沒有這樣的事情在C#中?
您可以用大括號限制值類型變量的作用域。
{
var x = 3;
doSomethingWith(x);
}
generateCompilerError(x);
最後一行將產生如x
不再定義編譯錯誤。
這也適用於對象類型,但不能保證對象在超出範圍之後何時處理。爲了確保其實現IDisposable該對象類型設置及時使用using
:
using (var x = new YourObject())
{
doSomethingWith(x);
}
generateCompilerError(x);
您可以使用塊範圍名稱。從C#規格:
8.2塊
塊允許在一個單一的語句被允許上下文中編寫多個語句。
塊:{語句listopt}
A嵌段由一個可選 語句列表(§8.2.1),封閉在 括號。如果語句清單 省略,則該塊被稱爲 爲空。
一個塊可能包含聲明 聲明(§8.5)。 塊中聲明的 局部變量或常量的範圍是該塊。
在一個塊中,表達式上下文中使用的名稱 的含義必須始終相同(第7.5.2.1節)。
此外,人們在談論「塊級別範圍」 – Matt 2009-10-02 13:38:29