静态变量与静态属性的区别

3

很抱歉描述不够清晰。我之前遇到一个场景,当我在下面的代码中使用“North”时,某些东西无法正常工作。但是当我重新排列代码并像“X”一样定义“North”时,它就可以工作了。我现在想不起来具体是什么了(那是另一个类,而不是下面的类)。如果有人对这两种方式的原因有任何想法,请分享一下。哪个更好?为什么?谢谢。

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个回答

2

一种有效的方式是“只读”模式。这种方式:

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

每次读取时返回一个新的Bearing
另一个在实例化时仅具有默认值,并且可以被代码的任何部分更改。当您从中读取时,它具有更改后的值。
那么哪个更好?这取决于您的用例。它们都做不同的事情。

谢谢。它应该是一个“常量”,所以我想“X”的方式是正确的选择。 - Rob L
不是很需要..只需要把另一种方式标记为readonly,你就得到了运行时常量。 - Simon Whitehead
Simon,我正要添加这个选项。谢谢你们的意见。已回答。 - Rob L

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接