静态变量与静态属性

时间:2014-02-12 21:39:12

标签: c# properties static

对于模糊的描述感到抱歉。我在前面的代码中使用'North'的时候有一些情况不适用。但是当我重新排列代码并将'North'定义为'X'时,它就可以了。对于我的生活,我不记得它是什么(它是另一个类,而不是下面的那个)。如果它有任何不同,那么Bearing就是一个简单地包裹双(N)并保持在0> = N <0的范围内的类。 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); }
    }

1 个答案:

答案 0 :(得分:2)

一种方式实际上是“只读”。这样:

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

每次阅读时都会返回一个新的Bearing

另一个在实例化时只有默认值,并且可以由代码的任何部分更改。当你从中读取它时,它的值已经改变了。

那么哪一个更好?无论你的用例是什么。他们都做不同的事情。