Использование this при выгрузке перегружаемого конструктора - C#

Узнай цену своей работы

Формулировка задачи:

Я немного не понял использование this при выгрузке перегружаемого конструктора. В книжке дан вот такой пример:
using System; 
class XYCoord { 
public int x, y; 
public XYCoord() : this@, 0) { 
Console.WriteLine("В конструкторе XYCoord()"); 
} 
public XYCoord(XYCoord obj) : this(obj.x, obj.y) { 
Console.WriteLine("В конструкторе XYCoord(obj)"); 
} i 
public XYCoord(int i, int j) { 
Console.WriteLine("В конструкторе XYCoord(int, int)"); 
x = i; 
У = j; 
} 
} 
class OverloadConsDemo { 
static void Main() { 
XYCoord tl = new XYCoord(); 
XYCoord t2 = new XYCoord(8, 9); 
XYCoord t3 = new XYCoord(t2); 
Console.WriteLine("tl.x, tl.y " + tl.x + ", " + tl.y); 
Console.WriteLine("t2.x, t2.y " + t2.x + ", " + t2.y); 
Console.WriteLine("t3.x, t3.y " + t3.x + ", " + t3.y); 
} 
}
Выполнение этого кода приводит к следующему результату. В конструкторе XYCoord(int, int) В конструкторе XYCoord() В конструкторе XYCoord(int, int) В конструкторе XYCoord(int, int) В конструкторе XYCoord(obj) tl.x, tl.y: 0, О t2.x, t2.y: 8, 9 t3.x, t3.y: 8, 9 Если this искусственно вызывает альтернативный конструктор, то почему происходит потом вызов изначального конструктора?

Решение задачи: «Использование this при выгрузке перегружаемого конструктора»

textual
Листинг программы
public XYCoord() {
    this(0, 0);
    Console.WriteLine("В конструкторе XYCoord()"); 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы