当前位置:  开发笔记 > 编程语言 > 正文

如何在匿名类型中定义方法?

如何解决《如何在匿名类型中定义方法?》经验,为你挑选了2个好方法。

我如何定义一个方法,例如void doSuff()匿名类型?我能找到的所有文档只使用匿名限制,基本上只限于属性列表.我甚至可以用匿名类型定义方法吗?

编辑:好的,快速查看非常快速的答案告诉我这是不可能的.有没有办法动态构造一个类型并将匿名方法添加到该类型的委托属性?我正在寻找一种C#方式来完成以下JavaScript的工作:

...
person.getCreditLimit = function() { ... }
...

Peter Lillev.. 8

好吧,你可以.使用代理,您只需将方法视为数据:

var myMethods = from x in new[] { "test" }
                select new { DoStuff = new Func(() => x) };

var method = myMethods.First();
var text = method.DoStuff();

你认为"文本"的价值是什么?

使用Action <>和Func <>泛型类型,您可以(几乎)将任何内容放入其中.几乎,因为您无法访问匿名类型上的其他属性,如下所示:

var myMethods = from x in new[] { "test" }
                select new { Text = x, DoStuff = new Func(() => Text) };


Neil Barnwel.. 5

你绝对可以和代表一起:

Action action = MethoThatDoesSomething;
var obj = new
          {
              DoSomething = action
          };

obj.DoSomething();

我尝试使用lambda new { ... }并且没有用,但上面的内容完全没问题.



1> Peter Lillev..:

好吧,你可以.使用代理,您只需将方法视为数据:

var myMethods = from x in new[] { "test" }
                select new { DoStuff = new Func(() => x) };

var method = myMethods.First();
var text = method.DoStuff();

你认为"文本"的价值是什么?

使用Action <>和Func <>泛型类型,您可以(几乎)将任何内容放入其中.几乎,因为您无法访问匿名类型上的其他属性,如下所示:

var myMethods = from x in new[] { "test" }
                select new { Text = x, DoStuff = new Func(() => Text) };



2> Neil Barnwel..:

你绝对可以和代表一起:

Action action = MethoThatDoesSomething;
var obj = new
          {
              DoSomething = action
          };

obj.DoSomething();

我尝试使用lambda new { ... }并且没有用,但上面的内容完全没问题.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有