Ich habe die ASP.NET MVC Storefront Video-Serie wieder und sah etwas, das ich noch nie zuvor bemerkt oder beachtet hatte. Mir ist aufgefallen, dass in den Signaturlisten verschiedener Methoden viele Referenzen auf this
standen. Hier ist ein Beispiel für eins:
Ich verstehe sofort die IList<Category> list
und die string categoryName
in der Signatur, war aber verwirrt darüber, was this
tut.
Also, als 95% VB-Typ, habe ich den Code in meinen Lieblingskonverter gepackt und habe:
%Vor% Zunächst einmal bin ich mir nicht ganz sicher, warum <System.Runtime.CompilerServices.Extension>
enthalten ist, vielleicht ist es nur der Konverter, trotzdem, wie Sie sehen können, wurde this
nicht in etwas umgewandelt, was ich sagen kann, außer es muss mache mit dem oben erwähnten <System.Runtime.CompilerServices.Extension>
.
Also sind die Fragen:
this
in der C # -Methodensignatur? /
Wir haben also definitiv klargestellt, dass this
tatsächlich eine Erweiterungsmethode bezeichnet und dass aus den gegebenen Antworten ersichtlich ist, dass es kein Inline-VB-Äquivalent gibt.
Ich möchte hinzufügen, dass, da ich die ASP.NET MVC Storefront Video wurde das obige C # -Beispiel aus seiner CategoryFilters
-Klasse gezogen. Ich nehme an, dass Sie so implementieren, was als Pipes und Filter oder -Pipeline -Methode bezeichnet wurde.
Ich gehe davon aus, dass die Art und Weise, wie VB.NET mit Erweiterungsmethoden arbeitet, in etwa so aussieht:
%Vor% Das ist eine Erweiterungsmethode. Das this
gibt an, dass es sich um eine Erweiterungsmethode von this <parameter>
type handelt, in Ihrem Fall IList<Category>
.
Es gibt hier ein VB.NET-Äquivalent , obwohl es ein Attribut ist, kein a Schlüsselwort.
Die Erweiterungsmethoden müssen den Typ kennen, auf den sie angewendet werden sollen. Beachten Sie, dass dies bei Generika offensichtlich ist. Eine Erweiterungsmethode:
%Vor% Wird nur in List<Category>
verfügbar sein.
Dieses Erscheinen an diesem Ort bedeutet eine Erweiterungsmethode .
%Vor%nach diesem Code jedes String-Objekt in Ihrem Programm kann diese Funktion verwenden, wie
%Vor%Mit anderen Worten, dies ist eine Möglichkeit, die Funktionalität der Typen zu erweitern, auf die Sie keinen Zugriff haben oder von denen Sie nicht abweichen dürfen.
Tags und Links c# vb.net signature c#-to-vb.net