364 Stimmen

Verwendung des Schlüsselworts "this" in formalen Parametern für statische Methoden in C#

Ich bin auf mehrere Fälle von C#-Code wie den folgenden gestoßen:

public static int Foo(this MyClass arg)

Ich habe keine Erklärung dafür finden können, was die this Schlüsselwort bedeutet in diesem Fall. Irgendwelche Erkenntnisse?

5voto

jpoh Punkte 4486

Ich habe das erst neulich gelernt: Das this-Schlüsselwort definiert, dass eine Methode eine Erweiterung der Klasse ist, die sie ausführt. Für Ihr Beispiel wird MyClass also eine neue Erweiterungsmethode namens Foo haben (die keinen Parameter akzeptiert und einen int zurückgibt; sie kann wie jede andere öffentliche Methode verwendet werden).

1voto

dcarl661 Punkte 95

"this" erweitert die nächste Klasse in der Parameterliste

In der folgenden Methodensignatur erweitert "this" also "String". Line wird der Funktion als normales Argument an die Methode übergeben. public static string[] SplitCsvLine(this String line)

In dem obigen Beispiel erweitert die Klasse "this" die eingebaute Klasse "String".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X