\b;Anweisung \c;this\n;
Manchmal braucht eine Methode einer \l;Klasse\u cbot\class; eine Referenz auf die Instanz, an der sie gerade arbeitet, z.B. um sie an eine andere Funktion als Parameter zu übergeben. Benutzen Sie dafür die Anweisung \c;this\n;.
\c;
\s;public class MyClass
\s;{
\s;	int    m_int;
\s;	string m_str;
\s;	void MyFunction()
\s;	{
\s;		OtherFunction(this);
\s;		m_int = 2;
\s;	}
\s;}
\s;
\s;void OtherFunction(MyClass obj)
\s;{
\s;	message(obj.m_str);
\s;}
\s;
\s;extern void object::Test()
\s;{
\s;	MyClass item();
\s;	item.m_str = "Hello";
\s;	item.MyFunction();  // zeigt "Hello" an
\s;}
\n;
Vor jede Variable der Klasse können Sie \c;this\n; schreiben, es ist jedoch nicht nötig und macht das Programm weniger gut lesbar. In der Methode \c;MyFunction()\n; im obigen Beispiel wären folgende zwei Zeilen gleichwertig:
\c;
\s;	m_int = 2;
\s;	this.m_int = 2;  // gleichwertig
\n;
In einer Methode der Klasse \c;\l;object\u cbot\object;\n; können Sie auch \c;this.\n; vor jede Instanzvariable setzen.
\c;
\s;extern void object::Display()
\s;{
\s;	message(orientation);
\s;	message(this.orientation); // gleichwertig
\s;	                           // aber expliziter
\s;}
\n;
Wenn der Name einer Instanzvariable jedoch von einer lokalen Variable "versteckt" wird, muss \c;this\n; eingesetzt werden, um auf die Instanzvariable zuzugreifen. Im folgenden Beispiel ist der Name des Parameters \c;value\n; mit der Instanzvariable \c;value\n; der \l;Klasse\u cbot\class; \c;MyClass\n; identisch. Um auf die Instanzvariable zuzugreifen, muss also \c;this.value\n; geschrieben werden.
\c;
\s;public class MyClass
\s;{
\s;	int  value;
\s;	void Put( int value )
\s;	{
\s;		this.value = value;
\s;	}
\s;}
\n;
\t;Siehe auch
\c;\l;class\u cbot\class;\n;, \c;\l;super\u cbot\super;\n;
\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;.
