Метод Deconstruct в C#
Кортеж - не единственный тип, который можно разложить. Публичный метод
Deconstruct с параметрами out задаёт, какие части объекта
попадут в переменные.
Компилятор принимает тот же синтаксис, что и для кортежа. Создадим точку и выведем сумму координат:
Point p = new Point(3, 8);
(int x, int y) = p;
Console.WriteLine(x + y);
class Point(int x, int y)
{
public void Deconstruct(out int px, out int py)
{
px = x;
py = y;
}
}
Сумма координат 3 и 8 - 11. Параметры
Deconstruct должны быть out. Параметры в заголовке
класса видны в его методах, поэтому Deconstruct читает x и y напрямую.
Класс хранит метку "beta" и число 14. Добавьте разложение на две переменные и выведите число.
Структура хранит цену 20 и количество 3. Разложите её и выведите произведение этих чисел.