我如何定义一个方法,例如void doSuff()匿名类型?我能找到的所有文档只使用匿名限制,基本上只限于属性列表.我甚至可以用匿名类型定义方法吗?
编辑:好的,快速查看非常快速的答案告诉我这是不可能的.有没有办法动态构造一个类型并将匿名方法添加到该类型的委托属性?我正在寻找一种C#方式来完成以下JavaScript的工作:
...
person.getCreditLimit = function() { ... }
...
Run Code Online (Sandbox Code Playgroud)
好吧,你可以.使用代理,您只需将方法视为数据:
var myMethods = from x in new[] { "test" }
select new { DoStuff = new Func<string>(() => x) };
var method = myMethods.First();
var text = method.DoStuff();
Run Code Online (Sandbox Code Playgroud)
你认为"文本"的价值是什么?
使用Action <>和Func <>泛型类型,您可以(几乎)将任何内容放入其中.几乎,因为您无法访问匿名类型上的其他属性,如下所示:
var myMethods = from x in new[] { "test" }
select new { Text = x, DoStuff = new Func<string>(() => Text) };
Run Code Online (Sandbox Code Playgroud)
你绝对可以和代表一起:
Action action = MethoThatDoesSomething;
var obj = new
{
DoSomething = action
};
obj.DoSomething();
Run Code Online (Sandbox Code Playgroud)
我尝试使用lambda new { ... }并且没有用,但上面的内容完全没问题.