Страницы

Поиск по вопросам

понедельник, 29 апреля 2019 г.

Значение this в С#

Не могу разобраться в сути this. Когда метод вызывается, ему автоматически передается ссылка на вызывающий объект, т.е. тот объект, для которого вызывается данный метод
class SomeClass { private string name = "No name"; private static void WriteToLog(SomeClass aSomeObject) { Console.WriteLine("Обрабатывается объект с именем " + aSomeObject.name); }
public SomeClass(string name) { //Хотим присвоить значение аргумента, полю класса this.name = name; }
public void DoWork() { WriteToLog(this); }
}
А что передается в WriteToLog(this) при его вызове? Ссылка на что?
т.е. при
SomeClass tmpObj = new SomeClass("Иван");
tmpObj.DoWork();
передается ссылка на объект tmpObj ?


Ответ

MSDN
The this keyword refers to the current instance of the class and is also used as a modifier of the first parameter of an extension method.

Ключевое слово this указывает на текущий экземпляр класса. Также используется в качестве модификатора для первого параметры в методах расширениях
Таким образом внутри определения класса - это ссылка на конкретный объект, для которого выполняется тот или иной метод.
SomeClass tmpObj = new SomeClass("Иван"); tmpObj.DoWork();
this внутри DoWork в данном случае указывается на tmlObj, так как эта функция вызывается у этого объекта.

Комментариев нет:

Отправить комментарий