【发布时间】:2009-10-21 13:04:51
【问题描述】:
我有一个像下面这样的课程:
class Foo
{
public Foo(int x) { ... }
}
我需要将这样的委托传递给某个方法:
delegate Foo FooGenerator(int x);
是否可以直接将构造函数作为FooGenerator 值传递,而不必键入:
delegate(int x) { return new Foo(x); }
?
编辑:供我个人使用,该问题涉及 .NET 2.0,但也欢迎 3.0+ 的提示/响应。
【问题讨论】:
-
有趣的问题。我相信就 CLR 而言,构造函数是有效的方法,但我不知道语法。
-
我很感兴趣:你为什么要这么做?
-
我怀疑答案是否定的。
-
@Mitch Wheat:详细信息:1)我有类 'Deriv1' 和 'Deriv2' 扩展了 'Foo',2)我有一个方法 'SomeLogic()' 有时需要创建一个基于 'x' 的 'Foo' 派生对象,3) 我想在调用该方法时决定它应该是 'Deriv1' 还是 'Deriv2'。既然我想到了这一点,我可能想考虑使用模板方法......但要作为一个答案,我宁愿打开一个单独的问题:) +1 & 向你致敬:)
标签: c# delegates constructor