2014-10-04 76 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

回答

相關問題