抱歉,描述含糊不清。前段时间我有一个场景,当我在下面的代码中使用“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/