Ich bin auf mehrere Instanzen von C # -Code gestoßen, wie die folgenden:
public static int Foo(this MyClass arg)
Ich konnte keine Erklärung dafür finden, was das this
Schlüsselwort in diesem Fall bedeutet. Irgendwelche Einsichten?
c#
parameters
this
kpozin
quelle
quelle
Antworten:
Dies ist eine Erweiterungsmethode . Eine Erklärung finden Sie hier .
es bedeutet, dass Sie anrufen können
eher, als
Dies ermöglicht den Aufbau fließender Schnittstellen wie unten angegeben.
quelle
Scott Gu's zitierter Blog-Beitrag erklärt es gut.
Für mich ist die Antwort auf die Frage in der folgenden Aussage in diesem Beitrag:
quelle
this
Schlüsselworts in der Methodensignatur ist. Die anderen Antworten sagen nur unbeholfen: "Es ist eine Erweiterungsmethode." Ich habe nie vollständig verstanden, wie Erweiterungsmethoden an die Typen "anhängen", die sie erweitern, bis ich diese Antwort gelesen habe. Danke dir!Zusätzlich zu Preet Sanghas Erklärung:
Intellisense zeigt die Erweiterungsmethoden mit einem blauen Pfeil an (z. B. vor "Aggregat <>"):
Du brauchst ein
Damit die Erweiterungsmethoden angezeigt werden und verfügbar sind, wenn sie sich in einem anderen Namespace befinden als der Code, der sie verwendet.
quelle
Sie sind Erweiterungsmethoden . Willkommen in einer ganz neuen fließenden Welt . :) :)
quelle
Ich habe das neulich selbst gelernt: Das Schlüsselwort this definiert, dass die Methode eine Erweiterung der Klasse ist, die sie fortführt. In Ihrem Beispiel verfügt MyClass über eine neue Erweiterungsmethode namens Foo (die keinen Parameter akzeptiert und ein int zurückgibt. Sie kann wie jede andere öffentliche Methode verwendet werden).
quelle
"this" erweitert die nächste Klasse in der Parameterliste
In der Methodensignatur unten erweitert "this" also "String". Die Zeile wird als normales Argument an die Methode an die Funktion übergeben. public static string [] SplitCsvLine (diese String-Zeile)
Im obigen Beispiel erweitert "diese" Klasse die eingebaute "String" -Klasse.
quelle