Pytania oznaczone «covariance»

Kowariancja, kontrawariancja i niezmienność opisują, jak zmienia się istniejąca hierarchia dziedziczenia typu po poddaniu jej pewnej transformacji (takiej jak użycie w rodzajach). Jeśli transformacja zachowuje kolejność oryginalnej hierarchii, jest „kowariantna”. Jeśli ją odwraca, jest „kontrawariantna”. Jeśli ją złamie, jest „niezmienna”.

84
Czy C # obsługuje kowariancję typu zwracanego?

Pracuję z platformą .NET i naprawdę chcę mieć możliwość tworzenia niestandardowego typu strony, z której korzysta cała moja witryna. Problem pojawia się, gdy próbuję uzyskać dostęp do strony z kontrolki. Chcę mieć możliwość zwrócenia strony określonego typu zamiast strony domyślnej. Czy jest na...

81
C #: zastępowanie zwracanych typów

Czy istnieje sposób na zastąpienie zwracanych typów w C #? Jeśli tak, to jak, a jeśli nie, dlaczego i jaki jest zalecany sposób? Mój przypadek jest taki, że mam interfejs z abstrakcyjną klasą bazową i jej potomkami. Chciałbym to zrobić (ok niezupełnie, ale jako przykład!): public interface...

35
Co sprawia, że ​​kowariant ValueTuple?

Kompiluje się to poprawnie w C # 7.3 (Framework 4.8): (string, string) s = ("a", "b"); (object, string) o = s; Wiem, że jest to cukier składniowy dla następujących składników, który również poprawnie się kompiluje: ValueTuple<string, string> s = new ValueTuple<string, string>("a",...