\b;Инструкция \c;this\n;
Иногда, методы \l;класса\u cbot\class; должны знать ссылку уже действующего экземпляра. Например, экземпляр, возможно, захочет передать свои ссылки другой функции. Неявное имя ссылки \c;this\n; доступно для методов, а также \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();  // вывести "Hello"
\s;}
\n;
Вы можете написать \c;this\n; перед методом, но в этом нет необходимости. В приведенном ниже примере мы видим две строго одинаковых строки:
\c;
\s;	m_int = 2;
\s;	this.m_int = 2;  // они идентичны
\n;
В методе класса \c;\l;object\u cbot\object;\n;, вы можете использовать \c;this.\n; перед именем поля.
\c;
\s;extern void object::Display()
\s;{
\s;	message(orientation);
\s;	message(this.orientation); // тоже самое, но
\s;	                           // более четко
\s;}
\n;
Однако, если имя поля неизвестно, то объявление параметра или переменной необходимо использовать вместе с \c;this\n;. В следующем примере имя параметра \c;value\n; такое же, как и имя поля \c;value\n; \l;класса\u cbot\class; \c;MyClass\n;, поэтому мы должны написать \c;this.value\n; для того, чтобы отличить поле от параметра.
\c;
\s;public class MyClass
\s;{
\s;	int  value;
\s;	void Put( int value )
\s;	{
\s;		this.value = value;
\s;	}
\s;}
\n;
\t;См. также
\c;\l;class\u cbot\class;\n;, \c;\l;super\u cbot\super;\n;
\l;Программирование\u cbot\programming;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.
