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]);
}
任何指针?
答案 0 :(得分:4)
您可以像这样创建一个隐式运算符:
public class Point3
{
public static implicit operator Point3(int[] ints)
{
return new Point3();
}
}
可以使用以下方法调用:
Point3 p1 = new[] { 1, 2, 3 };
请注意,您明确需要创建数组,并且不能使用初始化表达式。基本上,您所做的就是解释右侧并提供它与您的自定义类型之间的隐式转换。然后,您可以定义应该如何处理此转换。