创建实现接口的匿名类

nin*_*hog 2 c#

我想知道是否有一些内联短方法来创建实现接口的类。就像有匿名方法但有实现接口一样。

问题是:

interface iSomeInterface
{
  void DoIt();
}

public void myMethod(iSomeInterface param)
{
 ...
}
Run Code Online (Sandbox Code Playgroud)

我想这样使用它:

object.myMethod(new { override DoIt() { Console.WriteLine("yay"); } } : iSomeInterface);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

抱歉,以防重复。

xan*_*tos 5

抱歉,C# 中没有类的内联实现。只有Anonymous Types,但它们不支持添加接口(例如,请参阅Can a C# Anonymous Class Implement an Interface?)(也不支持添加方法或字段......它们只支持属性)。

您可以使用 的方法System.Reflection.Emit在运行时生成类,但它又长又乏味。