我经常发现仅仅因为某个方法调用需要它一次就必须实现一个接口会让人分心。我必须在其他地方创建一个类,实现接口等。
Java 有一个称为匿名类的特性,它允许实现“内联”接口。因此,我的问题是:您能想到的使用现有语法在 C# 中完成类似事情的最佳方式是什么(我意识到“最好”是主观的)。我正在寻找好的语法,不一定是性能。
我在C#中将以下内容实现为 POC :
给定
interface IFoobar
{
Boolean Foobar(String s);
}
IFoobar foo = Implement.Interface<IFoobar>(new {
Foobar = new Func<String, Boolean>(s => s == "foobar")
});
这使用匿名对象和一些反射/发射来实现IFoobar
接口(忽略属性、泛型方法和重载)。但是,我不是这些new Func<...>
东西的粉丝,但不能没有。
环顾四周,我注意到一个名为Impromptu Interface的库,但它支持方法的语法并没有给我留下深刻印象。
有没有“更好”的方式?
编辑:我不是在寻找 Java 与 C# 的火焰大战。