Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Использование this для возвратных ссылок в C#

Использование this для возвратных ссылок в C#

Обратите внимание на то, что другой конструктор класса Employee использует ключевое слово C# this.

// Явное использование "this" для разрешения конфликтов имен.
publiс Employee(string fullName, int empID, float currPay) {
 // Присваивание входных параметров данным состояния.
 this.fullName = fullName;
 this.empID = empID;
 this.currPay = currPay;
}

Это ключевое слово C# используется тогда, когда требуется явно сослаться на поля и члены текущего объекта. Причиной использования ключевого слова this в этом пользовательском конструкторе является стремление избежать конфликта имен параметров и внутренних переменных состояния. Альтернативой могло бы быть изменение имен всех параметров.

// В отсутствие конфликта имен "this" подразумевается.
public Employee(string name, int id, float pay) {
 fullName = name;
 empID = id;
 currPay = pay;
}

В данном случае нет необходимости явно добавлять префикс this к именам членов-переменных Employee, потому что конфликт имен уже исключен. Компилятор может самостоятельно выяснить области видимости используемых членов-переменных, и в этой ситуации this называют неявным: если класс ссылается на свои собственные поля данных и члены-переменные (без каких бы то ни было неоднозначностей), то this подразумевается. Таким образом, предыдущая логика конструктора функционально идентична следующей.

public Employee(string name, int Id, float pay) {
 this.fullName = name;
 this.empID = id;
 this.currPay = pay;
}

Замечание. Статические члены типа не могут использовать ключевое слово this в контексте метода. В этом есть смысл, поскольку статические члены-функции действуют на уровне класса (а не объекта). На уровне класса нет this!

Оглавление книги


Генерация: 6.659. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз