\b;Instrução \c;this\n;
Ocasionalmente, um método de uma \l;classe\u cbot\class; precisa conhecer a referência para a instância que está agindo sobre. Por exemplo a instância pode querer passar sua própria referência para outra função. Uma referência implicita de nome \c;this\n; é disponível para os métodos, \c;this\n; é uma referência para a instância atual.
\c;
\s;public class MinhaClasse
\s;{
\s;	int    m_int;
\s;	string m_str;
\s;	void MinhaFuncao()
\s;	{
\s;		OutraFuncao(this);
\s;		m_int = 2;
\s;	}
\s;}
\s;
\s;void OutraFuncao(MinhaClasse obj)
\s;{
\s;	message(obj.m_str);
\s;}
\s;
\s;extern void object::Teste()
\s;{
\s;	MinhaClasse item();
\s;	item.m_str = "Olá";
\s;	item.MinhaFuncao();  // exibe "Olá"
\s;}
\n;
Você também pode colocar \c;this\n; antes do nome de um campo em um método, porém isso não é necessário. No exemplo acima no método \c;MinhaFuncao()\n; as seguintes duas linhas tem estritamente o mesmo significado:
\c;
\s;	m_int = 2;
\s;	this.m_int = 2;  // identico
\n;
Em um método da classe \c;\l;object\u cbot\object;\n;, você também pode usar \c;this\n; antes de um campo.
\c;
\s;extern void object::Exibir()
\s;{
\s;	message(orientation);
\s;	message(this.orientation); // mesma coisa
\s;	                           // porém mais explicito
\s;}
\n;
Entretando se o nome de um campo é oculto por uma declaração de parâmetro ou variável você deve usar \c;this\n;. No exemplo seguinte o nome \c;valor\n; do parâmetro é o mesmo que o nome do campo \c;valor \n; da \l;classe\u cbot\class; \c;MinhaClasse\n;, nós devemos então escrever \c;this.valor\n; a fim de distinguir o campo do parâmetro.
\c;
\s;public class MinhaClasse
\s;{
\s;	int  valor;
\s;	void Colocar( int valor )
\s;	{
\s;		this.valor = valor;
\s;	}
\s;}
\n;
\t;Veja também
\c;\l;class\u cbot\class;\n;, \c;\l;super\u cbot\super;\n;
\l;Programação\u cbot;, \l;tipos\u cbot\type; e \l;categorias\u cbot\category;.
