2014-02-12 150 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

西蒙,我刚刚添加该选项。感谢您的输入人。回答.. –