【问题标题】:static variables vs static properties静态变量与静态属性
【发布时间】:2014-02-12 21:39:11
【问题描述】:

抱歉,描述模糊。我有一个场景,当我在下面的代码中使用“North”时,有些东西不起作用。但是当我重新排列代码并将“North”定义为“X”时,它起作用了。对于我的一生,我不记得它是什么(那是另一门课,而不是下面的那门)。如果有任何区别,Bearing 是一个简单地包装一个双精度 (N) 并将其保持在 0 >= N

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

【问题讨论】:

    标签: c# properties static


    【解决方案1】:

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

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

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

    另一个仅在实例化时具有默认值,并且可以通过代码的任何部分进行更改。当您从中读取时.. 它的值已更改。

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

    【讨论】:

    • 谢谢。它是一个“常数”,所以我想“X”方式是要走的路。
    • 不是真的.. 只是标记另一种方式 readonly 并且你有你的运行时常量。
    • Simon,我正要添加该选项。感谢您的输入。回答..
    猜你喜欢
    • 1970-01-01
    • 2014-04-05
    • 2021-05-27
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多