c# - 静态变量与静态属性

标签 c# properties static

抱歉,描述含糊不清。前段时间我有一个场景,当我在下面的代码中使用“North”时,某些东西不起作用。但是当我重新排列代码并将“North”定义为“X”时,它起作用了。对于我的生活,我不记得它是什么(那是另一个类,而不是下面的课)。如果有什么不同的话,Bearing 是一个简单地包装 double (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); }
    }

最佳答案

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

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

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

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

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

关于c# - 静态变量与静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21740263/

相关文章:

c# - 在 FormClosing 事件中等待异步函数

Python:使只读属性可通过 **vars(some_class) 访问

c# - 使用 C# 更改可执行属性(产品名称)

c++ - 静态 std::map 的奇怪链接器错误

c++ - 为什么volatile静态成员初始化会产生重定义编译错误?

c# - 企业框架日志记录 - ShouldLog 不适用于 SourceLevel 过滤器

c# - 在 ASP.NET Core 中使用 reloadOnChange 重新加载选项

c# - 将 const char* 字符串从非托管传递到托管

java - 无需获取/设置即可访问私有(private)属性(property)

vb.net - VB.NET 中的静态成员