C # 7.0 Fallmustervergleich auf generischem Parameter

8

Gibt es einen Grund, nicht in der Lage zu sein, eine generische Variable mit dem Typmuster zu behandeln? Bitte beachten Sie den Code:

%Vor%

Die erste Übereinstimmung auf der IComparable-Schnittstelle ist in Ordnung, aber die zweite kompiliert nicht. Warum muss ich diese Workaround-Box verwenden?

%Vor%     
neonxc 25.06.2017, 08:02
quelle

1 Antwort

9

Dies ist eine Konsequenz davon, wie die Mustererkennung in C # 7.0 definiert wird: Damit Ihr Typmuster kompiliert werden kann, müsste eine Umwandlung von T nach Complex existieren, tut dies aber nicht. Das C # -Team erkannte, dass es ein Fehler war, dies zu verlangen, also Problem wurde in C # 7.1 behoben .

    
svick 25.06.2017, 11:49
quelle