gpt4 book ai didi

c# - 是否可以让匿名类继承另一个类?

转载 作者:IT王子 更新时间:2023-10-29 03:50:40 28 4
gpt4 key购买 nike

这是一个远景,但我有一个有趣的编码情况,我希望能够即时创建匿名类,但能够将它们作为参数传递给需要接口(interface)或子类的方法。换句话说,我希望能够做这样的事情:

public class MyBase { ... }

public void Foo(MyBase something)
{
...
}

...
var q = db.SomeTable.Select(t =>
new : MyBase // yeah, I know I can't do this...
{
t.Field1,
t.Field2,
});
foreach (var item in q)
Foo(item);

除了使用命名类之外,还有什么方法可以做到这一点吗?

最佳答案

没有。匿名类型始终隐式派生自 object,并且从不实现任何接口(interface)。

来自 C# 5 规范的第 7.6.10.6 节:

An anonymous object initializer declares an anonymous type and returns an instance of that type. An anonymous type is a nameless class type that inherits directly from object.

因此,如果您想要一个不同的基类您想要实现一个接口(interface),您需要一个命名类型。

关于c# - 是否可以让匿名类继承另一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22226838/

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