Как реализовать однострочный экземпляр класса

Помогите, реализовать этих 4 экземпляра класса в однострочный экземпляр класса

MyComplex A = new MyComplex(1, 1);
MyComplex B = new MyComplex();
MyComplex C = new MyComplex(1);
MyComplex D = new MyComplex();

Я знаю, что можно как-то сделать в C# так, но не понимаю как

MyComplex A(1,1), B, C(1), D;

Ответы (3 шт):

Автор решения: Igor
(var A, var B, var C) = (new MyComplex(1, 1), new MyComplex(), new MyComplex(1));

https://docs.microsoft.com/en-us/dotnet/csharp/deconstruct

→ Ссылка
Автор решения: Exploding Kitten

В C# 9.0 можно написать так, при условии, что есть подходящие конструкторы:

MyComplex A = new (1, 1), B = new (), C = new (1), D = new ();
→ Ссылка
Автор решения: Alexander Petrov

Можно перегрузить операторы преобразования.
Кортеж из двух чисел или одно число неявно конвертируем в наш класс (или структуру).

public class MyComplex
{
    private int _x;
    private int _y;

    public MyComplex(int x) : this(x, 0) { }

    public MyComplex(int x, int y) => (_x, _y) = (x, y);

    public static implicit operator MyComplex(int x) => new MyComplex(x);

    public static implicit operator MyComplex((int x, int y) v) => new MyComplex(v.x, v.y);

    public override string ToString() => $"{_x}, {_y}";
}

Тогда становится возможной следующая запись.

MyComplex A = (1, 1), B = (2, 2), C = 3, D = (0);
→ Ссылка