This in CSharp
- Home
- Tutorials
- C
- Der Ultimative C# Kurs - Hier wirst Du zum CSharp Pro
- This in CSharp
Dieses Video ist nicht verfügbar
Dieses Video steht nur eingeschriebenen Nutzern zur Verfügung.
Jetzt Kurs kaufen
Es gibt ein Begriff in der Programmierung, der häufig bei Anfängern etwas Schwierigkeiten macht, und zwar This. Dieser Begriff bedeutet eigentlich nur, diese/jene und wird in der Programmierung dafür verwendet zu verdeutlichen, dass es sich bei der Variable um die Variable des Kontextes bzw. der Klasse handelt und nicht die Variable des Funktion z.B.
In unserem Setter und Getter Tutorial hatten wir gelernt, dass ein Setter folgendermaßen auszusehen hat:
public class KlasseB {
private string name;
public void setName(string derName){
name=derName;
}
}
Man kann es jedoch auch folgendermaßen machen:
Beispiel für This bei Settern in CSharp
public class KlasseB {
private string name="Chuck Norris";
public void setName(string name){
this.name=name; //z.B. via KlassaA.setName("Eminem") verändert
}
}
This wird hier so verwendet, dass wir sagen this.name, also die globale Variable name, ist der name den wir als Parameter bekommen. Würden wir hier kein this verwenden, würde trotz des Aufrufes der Funktion setName, die globale string Variable name nicht verändert werden.
D.h. CSharp betrachtet die Parametervariablen zuerst. Wenn Wir also die globalen Variablen ändern möchten und die Variablennamen die wir in unserer Funktion als Parameter erzeugen, den gleichen Namen haben wie die globalen Variablen, benötigen wir this um CSharp zu verdeutlichen, dass wir die Werte die wir den Variablen in der Funktion zuordnen, verwenden möchten und nicht diejenigen, die wir global initialisiert haben.
This bei der Übergabe von Instanzen an ein Objekt
This wird auch verwendet, wenn man einem Objekt die Instanz der Klasse in der das Objekt erstellt wurde übergeben möchte. Das sieht dann so aus:
objekt.ichBins(this);
This bei Konstruktoren
This kann auch bei Konstruktoren verwendet werden. Man gibt also der globalen Variablen und dem Konstruktorargument den selben Namen. Weil nun z.B. name = name in einem Konstruktor oder allgemein keinen wirklichen Mehrwert liefert, weil man nun nicht weiß, welcher name gemeint ist (Die globale Variable oder das Konstruktorargument), verdeutlicht man mit this.name = name dass die Varibale name der Klasse (also die globale) gesetzt werden soll, mit dem namen der als Parameter übergeben wird.
Vorherig
Zufallsgenerator Random in CSharp
Der Ultimative C# Kurs - Hier wirst Du zum CSharp Pro
-
So holst du das meiste aus dem Kurs
-
Lektion1.1
-
Lektion1.2
-
Lektion1.3
-
-
Deine erste C# Anwendung und Übersicht zu Visual Studio
-
Lektion2.1
-
Lektion2.2
-
Lektion2.3
-
-
Datentypen und Variablen
-
Lektion3.1
-
Lektion3.2
-
Lektion3.3
-
Lektion3.4
-
Lektion3.5
-
-
Funktionen / Methoden und wie sie einem das Leben vereinfachen
-
Lektion4.1
-
Lektion4.2
-
Lektion4.3
-
Lektion4.4
-
-
Benutzereingabe für unsere Programme verwenden
-
Lektion5.1
-
-
Entscheidungen Treffen
-
Lektion6.1
-
Lektion6.2
-
Lektion6.3
-
Lektion6.4
-
Lektion6.5
-
Lektion6.6
-
Lektion6.7
-
Lektion6.8
-
-
Schleifen (Loops) und wie man etwas automatisiert
-
Lektion7.1
-
Lektion7.2
-
Lektion7.3
-
Lektion7.4
-
Lektion7.5
-
Lektion7.6
-
Lektion7.7
-
-
Objektorientierte Programmierung (OOP) und Klassen
-
Lektion8.1
-
Lektion8.2
-
Lektion8.3
-
Lektion8.4
-
Lektion8.5
-
Lektion8.6
-
Lektion8.7
-
Lektion8.8
-
Lektion8.9
-
Lektion8.10
-
Lektion8.11
-
-
Arrays / Felder
-
Lektion9.1
-
Lektion9.2
-
Lektion9.3
-
Lektion9.4
-
Lektion9.5
-
Lektion9.6
-
-
ArrayList
-
Lektion10.1
-
Lektion10.2
-
Lektion10.3
-
Lektion10.4
-
Lektion10.5
-
-
Vererbung / Inheritance und noch mehr zu OOP
-
Lektion11.1
-
Lektion11.2
-
Lektion11.3
-
Lektion11.4
-
-
Polymorphie und noch mehr zu OOP
-
Lektion12.1
-
Lektion12.2
-
Lektion12.3
-
Lektion12.4
-
Lektion12.5
-
Lektion12.6
-
-
Debugging und Try and Catch
-
Lektion13.1
-
Lektion13.2
-
-
Mit Dateien Arbeiten
-
Lektion14.1
-
Lektion14.2
-
Lektion14.3
-
Beliebte Kurse
Die Java 11 Masterclass - Werde zum Profi-Entwickler!
Werde zum Entwickler mit der Java 11 Masterclass! Starte in...
19,99€
Spiele entwickeln mit Unity 3D – Erstelle eigene Games in C# - Starter
Willkommen zum kostenlosen Teil des Kurses: "Spiele entwickeln mit Unity...
Kostenlos
Werde zum iOS 11 & Swift Entwickler in 6 Wochen - Starter
Willkommen zum kostenlosen Teil des Kurses: "Werde zum iOS 11...
Kostenlos