Gibt es einen bestimmten Grund, dass Sie generische Methoden nicht überladen können, die sich gegenseitig ausschließende Typeinschränkungen in C # verwenden? Nehmen Sie zum Beispiel diese Methoden:
%Vor%und versuchen Sie, sie mit
aufzurufen %Vor%So wie ich es sehe, schließen sich die DoSomething () -Methoden gegenseitig so weit aus, wie die Parameter, die sie annehmen werden - der erste nimmt einen Referenztyp an, der zweite einen Werttyp. Der Compiler sollte in der Lage sein zu sagen, dass der DoSomething-Aufruf mit einem String-Argument an die erste Methode geht und der DoSomething-Aufruf mit einem int-Argument an die zweite Methode geht.
Vermisse ich etwas konzeptionell mit Generika hier? Oder ist das nur eine Funktion, die nicht in C # implementiert wurde?
Generische Constraints sind nicht Bestandteil der Methodensignatur
Siehe diese Antwort Generische Einschränkungen bei Methodenüberlastungen
Tags und Links .net c# generics c#-4.0 method-overloading