Основы C#. Урок 45. Ссылка на текущий экземпляр класса (this)
Ссылка на текущий экземпляр класса делается через ключевое слово this. Вот традиционный пример:
class SomeClass
{
public int a;
SomeClass(int a)
{
this.a=a;
}
}
В этом примере у нас и переменная класса, и параметр метода названы одинаково - a. Для уточнения, что мы используем именно переменную класса, а не параметр метода, и служит слово this.
В C++ же для избегания конфликта имен обычно к переменной класса прибывлялся префикс m_.
Еще одна возможность по использованию ключевого слова this - это вызов одного конструктора из другого. Вот пример:
class SomeClass
{
public int a;
public int b;
//Конструктор с 2-я параметрами.
public SomeClass(int a, int b)
{
this.a=a;
this.b=b;
}
//Конструктор без параметров,
//вызывающий конструктор с 2-я параметрами.
public SomeClass():this(1, 1)
{
}
}
//Тестовый класс.
class App
{
static void Main()
{
SomeClass s=new SomeClass();
Console.WriteLine("a={0}, b={0}", s.a, s.b);
}
}
Здесь в классе SomeClass два конструктора. Второй конструктор (без параметров) вызывает первый (передавая в него значения 1 и 1):
...
public SomeClass():this(1, 1)
...
Указанный фрагмент выведет, разумеется, a=1, b=1.
|