在某些语言中,有这样的东西:
口齿不清:
(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#:特定于范围的变量绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509005/