gpt4 book ai didi

c# - 匿名类可以实现接口(interface)吗?

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

是否可以让匿名类型实现接口(interface)?

我有一段代码想要使用,但不知道如何操作。

我有几个答案要么说不,要么创建一个实现接口(interface)的类构造它的新实例。这不是很理想,但我想知道是否有一种机制可以在接口(interface)之上创建一个瘦动态类,从而使这变得简单。

public interface DummyInterface
{
string A { get; }
string B { get; }
}

public class DummySource
{
public string A { get; set; }
public string C { get; set; }
public string D { get; set; }
}

public class Test
{
public void WillThisWork()
{
var source = new DummySource[0];
var values = from value in source
select new
{
A = value.A,
B = value.C + "_" + value.D
};

DoSomethingWithDummyInterface(values);

}

public void DoSomethingWithDummyInterface(IEnumerable<DummyInterface> values)
{
foreach (var value in values)
{
Console.WriteLine("A = '{0}', B = '{1}'", value.A, value.B);
}
}
}

我找到了一篇文章 Dynamic interface wrapping描述了一种方法。这是最好的方法吗?

最佳答案

不,匿名类型不能实现接口(interface)。来自C# programming guide :

Anonymous types are class types that consist of one or more public read-only properties. No other kinds of class members such as methods or events are allowed. An anonymous type cannot be cast to any interface or type except for object.

关于c# - 匿名类可以实现接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/191013/

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