Anonymous types based in Interface
本问题已经有最佳答案,请猛点这里访问。
我可以用类似的方式创建接口的匿名实现吗?
1 | delegate() { // type impl here , but not implementing any interface} |
有点像
1 |
号
在我看来它们很有用的情况下,可以指定接口类型的方法参数,以及创建类类型的代码太多。
例如,考虑如下:
1 2 3 4 5 6 7 8 9 10 11 | public void RunTest() { Cleanup(delegate() { return"hello from anonymous type"; }); } private void Cleanup(GetString obj) { Console.WriteLine("str from delegate" + obj()); } delegate string GetString(); |
如果在上面的代码中,方法清理有一个作为参数的接口,而不编写类定义,这将如何实现?(我认为Java允许像新接口(…)这样的表达式……)
您可以看一下即兴界面。允许使用duck输入接口包装任何对象。
没有标准的语言语法。要动态创建
本质上,这就是许多模拟框架所做的。也许看看他们。
1 2 3 4 5 6 7 | private void CleanUp(Func<string> obj){ Console.WriteLine("str from delegate" + obj.Invoke()); } public void RunTest(){ Cleanup(() =>"hello from anonymous type"); } |
- 虽然没有真正实现接口…