Использование this при выгрузке перегружаемого конструктора - C#
Формулировка задачи:
Я немного не понял использование this при выгрузке перегружаемого конструктора.
В книжке дан вот такой пример:
Выполнение этого кода приводит к следующему результату.
В конструкторе 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 искусственно вызывает альтернативный конструктор, то почему происходит потом вызов изначального конструктора?
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); } }
Решение задачи: «Использование this при выгрузке перегружаемого конструктора»
textual
Листинг программы
public XYCoord() { this(0, 0); Console.WriteLine("В конструкторе XYCoord()"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д