Cod*_*ien 4 c# anonymous-types
我想使用一个匿名类,但在using代码块中实例化并让它逃脱阻止.这可能吗?
例如,我有
using (var s = something()) {
var instance = new { AA = s.A };
// ... lots of code
Console.WriteLine(instance.AA);
}
Run Code Online (Sandbox Code Playgroud)
我宁愿有类似的东西:
var instance; // <- nope, can't do this
using (var s = something()) {
instance = new { AA = s.A };
}
// ... lots of code
Console.WriteLine(instance.AA);
Run Code Online (Sandbox Code Playgroud)
轻松完成:
var instance = new { Name = default(string) };
using (whatever)
{
instance = new { Name = whatever.Whatever() };
}
...
Run Code Online (Sandbox Code Playgroud)
但这里更好的做法是创建一个实际的类.
或者,在C#7中,考虑使用元组.
现在,如果你想得到真正的幻想......
static R Using<A, R>(A resource, Func<A, R> body) where A : IDisposable
{
using (resource) return body(resource);
}
...
var instance = Using(something(), s => new { AA = s.A });
Run Code Online (Sandbox Code Playgroud)
但这看起来很傻.刚上课!
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |