C#6中不支持struct上的无参数构造函数

时间:2017-03-19 15:34:54

标签: c# struct constructor c#-6.0

我有一个带无参数构造函数的结构:

struct Coordinate
{
    public Coordinate() : this(4, 5, 6)
    {

    }
    public Coordinate(float x, float y, float z)
    {
        X = x;
        Y = y;
        Z = z;
    }

    public float X { get; private set; }
    public float Y { get; private set; }
    public float Z { get; private set; }
}

我将项目属性中的languate属性设置为C#,但仍然出现编译错误。

Error CS0568 Structs cannot contain explicit parameterless constructors

1 个答案:

答案 0 :(得分:1)

可悲的是,C#不允许定义无参数构造函数。 解决方法是将默认值定义为属性。

public static Coordinate defaultValue { get { return new Coordinate (7, 6, 3); } }