Sie können optional this
im Instanzmemberzugriff innerhalb eines Instanzmembers wie einer Instanzmethode oder -eigenschaft verwenden, da immer eine Instanzmethode this
(bezogen auf das aktuelle Objekt) automatisch als unsichtbarer Parameter übergeben wird.
Sie können nicht this
aus statischen Elementen verwenden, um beispielsweise Mitglied zugreifen ... wie Sie nicht this.x
oder this.y
(oder auch einfach x und y) von innerhalb einer statischen Methode oder Eigenschaft, wenn x und y-Instanz Mitglieder nutzen können. Dies liegt daran, dass this
in einem statischen Member-Aufruf nicht definiert ist. Das statische Element gehört zur ganzen Klasse ... es hat keine Ahnung welche Instanz this
sich bezieht. Und das liegt daran, dass der Aufruf beim Aufruf einer statischen Methode oder Eigenschaft das Format ClassName.MethodName();
hat. Die statische Methode weiß also nicht, welches Objekt this
referenziert.
this
ist auch nicht optional (es muss verwendet werden) als erster Modifikator in der Parameterliste einer Erweiterungsmethode. Tatsächlich identifiziert this
eine statische Methode als eine Erweiterungsmethode. Hier identifiziert this
den ersten Parameter als die Instanz, an der die Erweiterungsmethode arbeitet.
Wenn der Compiler denkt nicht beschweren ich es sechs von einem halben ein Dutzend der anderen. – R0MANARMY
Ja, es ist optional. Meiner Meinung nach macht die Überbenutzung von "this" den Code durcheinander. –
mögliches Duplikat von [C#, wenn "dieses" Schlüsselwort zu verwenden] (http://stackoverflow.com/questions/843288/c-when-to-use-this-keyword) –