Den*_*gan 2 c# variables binding scope
在某些语言中,有以下内容:
Lisp的:
(let ((x 3))
(do-something-with x))
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
let (x = 3) {
doSomethingWith(x);
}
Run Code Online (Sandbox Code Playgroud)
在C#中有这样的东西吗?
您可以使用大括号限制值类型变量的范围.
{
var x = 3;
doSomethingWith(x);
}
generateCompilerError(x);
Run Code Online (Sandbox Code Playgroud)
最后一行将生成x不再定义的编译器错误.
这也适用于对象类型,但不保证何时对象在超出范围后将被处理.为了确保及时处理实现IDisposable的对象类型,请使用using:
using (var x = new YourObject())
{
doSomethingWith(x);
}
generateCompilerError(x);
Run Code Online (Sandbox Code Playgroud)