如何初始化这样的自定义 class?

How do I initialize a custom class like this?

C#:如何初始化自定义 class,如下所示?

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]);
    }

有什么指点吗?

您可以像这样创建隐式运算符:

public class Point3
{
    public static implicit operator Point3(int[] ints)
    {
        return new Point3();
    }
}

可以用这个调用:

Point3 p1 = new[] { 1, 2, 3 };

请注意,您明确需要创建数组并且不能使用初始化表达式。基本上,您所做的是解释右侧并在右侧和您的自定义类型之间提供隐式转换。然后,您可以定义应如何准确处理此转换。

Implicit on MSDN