Использование 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!
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ