2014-10-04 14 views
7

Chciałem wiedzieć, czy jest to możliwe:Making rodzajowe typu ograniczenia na Func <T>

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

lub

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

Wydaje się, że kompilator mówi mi, że to nie możliwe. Przypuszczam, że mogę rzucić wyjątek środowiska wykonawczego w konstruktorze, ale miałem nadzieję, że wystąpi błąd kompilatora.

Jakieś sposoby na zrobienie tego?

+0

Prawdopodobnie właściwym rozwiązaniem jest tu po prostu zaakceptować 'T', a następnie użyć' 'Func w swojej klasie. –

+0

Zastanowiłem się nad tym, ale wtedy musiałbym pójść jak ludzie .NET stworzyć 17 przeciążenia do obsługi podstawowej sprawy Func . :) Wiem, że to głupie, tylko chce wiedzieć. – halivingston

+1

Nie mówię, że to dobry pomysł, ale możesz śledzić ten https://roslyn.codeplex.com/discussions/543871 wątek i dokonać zmiany w Roslyn i skompilować swój kod przy użyciu tego kompilatora. – mjsabby

Odpowiedz

Powiązane problemy