gpt4 book ai didi

c# 匿名类有什么方法可以逃脱内部作用域 block 吗?

转载 作者:太空狗 更新时间:2023-10-30 00:23:13 26 4
gpt4 key购买 nike

我想使用匿名类,但在 using 代码块内实例化并让它转义该 block 。这可能吗?

例如,我有

using (var s = something()) {
var instance = new { AA = s.A };
// ... lots of code
Console.WriteLine(instance.AA);
}

我宁愿有这样的东西:

var instance;  // <- nope, can't do this
using (var s = something()) {
instance = new { AA = s.A };
}
// ... lots of code
Console.WriteLine(instance.AA);

最佳答案

轻松完成:

var instance = new { Name = default(string) };
using (whatever)
{
instance = new { Name = whatever.Whatever() };
}
...

但在这里做的更好的事情是创建一个实际的类。

或者,在 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 });

但这看起来很傻。只需创建一个类!

关于c# 匿名类有什么方法可以逃脱内部作用域 block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42593370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com