2014-10-04 87 views
7

制作一个泛型类型约束,我想知道这是可能的:上Func键<T>

public class Foo<T> where T : Func<T> 

public class Foo<T> where T : Func<> 

这似乎是编译器告诉我这是不可能的。我想我可以在构造函数中抛出一个运行时异常,但希望它有一个编译器错误。

这样做的任何方法?

+0

这里大概正确的解决方法就是接受'T',然后在课堂上使用'Func键'。 – 2014-10-04 22:30:23

+0

我想过这个,但是我不得不像.NET人员创建17个重载来支持基本的Func 的情况。 :)我知道这很愚蠢,只是想知道。 – halivingston 2014-10-04 22:33:09

+1

不要说这是一个好主意,但你可以关注这个https://roslyn.codeplex.com/discussions/543871线程,并在Roslyn中进行更改并使用该编译器编译你的代码。 – mjsabby 2014-10-04 22:36:40

回答

相关问题