Kann ich eine Extension-Methode für alle Unterklassen von System.Object
(alles) machen?VB.NET: unmöglich zu verwenden Extension-Methode auf System.Object-Instanz
Beispiel:
<Extension>
Public Function MyExtension(value As Object) As Object
Return value
End Function
Die oben genannten Funktionen nicht für Objektinstanz arbeiten:
Dim myObj1 As New Object()
Dim myObj2 = myObj1.MyExtension()
Der Compiler nicht akzeptiert es, das Problem in meinem Computer? :)
UPDATE
Das Problem scheint nur in VB auftreten, in denen die Mitglieder des Objekts werden durch Reflexion sah-up (late-bound).
UPDATE NACH
FYI BEANTWORTET, als vb einen Vorteil, dass C# fehlt hat das heißt, die Mitglieder der importierten Module werden auf den globalen Bereich importiert, so dass Sie immer noch diese Funktionen ohne ihre Wrapper verwenden können:
Dim myObj2 = MyExtension(myObj1)
Sie diesen Code testen Haben? Die dritte Zeile (someObj) funktioniert nicht für mich. – Shimmy
Ja, das funktioniert für mich. Wie haben Sie Ihre Version der IsIn() Erweiterungsmethode geschrieben? Ich habe meinen Beitrag bearbeitet, um meine Implementierung zu integrieren, um Ihnen zu helfen. – mattmc3
Wenn Sie 'someObj' als' Objekt' in Ihren Code eingegeben haben, sollte dies definitiv * nicht * für Sie funktionieren. –