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?
Prawdopodobnie właściwym rozwiązaniem jest tu po prostu zaakceptować 'T', a następnie użyć' 'Func w swojej klasie. –
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
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