2014-02-12 151 views
2

對於模糊描述很抱歉。當我在下面的代碼中使用'North'時,我曾經有過一段時間某些情況不起作用。但是當我重新安排代碼並將'North'定義爲'X'時,它就起作用了。對於我的生活,我不記得它是什麼(這是另一個階級,而不是下面的階級)。如果它有什麼區別,軸承是一個簡單的包裝一個雙(N),並保持在0> = N < 360. 這個類別有沒有人有任何想法做這件事的原因?更好嗎?爲什麼? 謝謝。靜態變量與靜態屬性

public struct Bearing : IComparable 
{ 
    #region Named Bearings 

    /// <summary> 
    /// A bearing representing North (this is the default) 
    /// </summary> 
    public static Bearing North = new Bearing(0.0); 

    public static Bearing X 
    { 
     get { return new Bearing(0.0); } 
    } 

回答

2

單向有效「只讀」。這樣:

public static Bearing X 
{ 
    get { return new Bearing(0.0); } 
} 

每次您讀取它時都會返回一個新的Bearing

另一個只有實例化時纔有默認值,可以通過代碼的任何部分進行更改。當你讀它時,它有改變的值。

那麼,哪一個更好?無論你的用例是什麼。他們都做不同的事情。

+0

謝謝。它是一個'不變的',所以我想'X'的方式是要走的。 –

+0

不是真的..只是用另一種方式標記'readonly'並且你的運行時間是常量。 –

+0

西蒙,我剛剛添加該選項。感謝您的輸入人。回答.. –