C#: Как инициализировать пользовательский класс, как показано ниже?Как инициализировать пользовательский класс следующим образом?
Point3 Last = { 0, 0, 0 };
Я понимаю, что я могу перегрузить оператор присваивания «=», но я хочу, чтобы иметь возможность назначать такие вещи, как это:
Point3 p1 = { 3, 4, 5 };
Point3 p2 = p1;
Так что я не совсем уверен, если перегрузка назначения оператор поможет это или нет.
То, что я смотрю на это следующее:
public static Point3 operator =(Point3 P, double[] Vs)
{
return new Point3(Vs[0], Vs[1], Vs[2]);
}
Любые указатели?
Создать неявное преобразование между point3 и ИНТ []. Возможно, вам придется использовать 'Point3 p1 = new [] {3, 4, 5}'. –
Если 'Point3' не реализует IEnumerable, я не думаю, что вы можете делать то, что вы просите. Возможно, вы сможете сделать что-то еще, например «Point3 Last = new [] {0, 0, 0}», а затем оператор неявного преобразования из массива. –
Следует отметить, что оператор присваивания не может быть перегружен в соответствии с статьей [= Оператор (ссылка на C#)] (https://msdn.microsoft.com/en-us/library/sbkb459w.aspx) –