c#short(=>)运算符重载

时间:2017-05-10 10:48:39

标签: c# operator-overloading

我成功地重载了这样的运算符:

public static Vector3D operator +(Vector3D v1, Vector3D v2){
    return new Vector3D(v1._x + v2._x, v1._y + v2._y, v1._z + v2._z);
}

我读过this page我也可以这样做:

public static Vector3D operator +(Vector3D v1, Vector3D v2) =>
    new Vector3D(v1._x + v2._x, v1._y + v2._y, v1._z + v2._z);

但是在这种情况下,在=>下我收到错误说“;预期”。我错过了什么?

1 个答案:

答案 0 :(得分:1)

查看您发布示例的链接:

public static Complex operator +(Complex c1, Complex c2) =>  
    new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);  

// Override ToString() to display a complex number   
// in the traditional format:  
public override string ToString() => $"{this.real} + {this.imaginary}";  

强烈建议可以在C#6.0版本中应用此功能,因为从{C#6.0版本及更高版本开始使用$代替String.Format

尝试使用Visual Studio 2015使其工作。我做了,它工作了

  

是否可以更新VS 2012的C#版本?

是的,显然是的。如何做,你会在this post

找到