2017-03-19 38 views
0

我有一個無參數的構造函數的結構體:參數的構造函數不支持C#6

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

我有設置爲C#項目屬性languate財產,而是仍然得到編譯錯誤。

Error CS0568 Structs cannot contain explicit parameterless constructors 
+0

它已被討論爲潛在的C#6.0功能,但沒有做到這一點。 –

+0

你有問題嗎? – JLRishe

+0

@IvanStoev我讀過,但也看到它[MSDN([https://msdn.microsoft.com/en-gb/magazine/dn879355.aspx])。好吧,那會清除那個。它聽起來令人困惑。 – BanksySan

回答

1

不幸的是C#不允許定義無參數的構造函數。 解決方法是定義默認值作爲屬性。

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