对于模糊的描述感到抱歉。我在前面的代码中使用'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); }
}
答案 0 :(得分:2)
一种方式实际上是“只读”。这样:
public static Bearing X
{
get { return new Bearing(0.0); }
}
每次阅读时都会返回一个新的Bearing
。
另一个在实例化时只有默认值,并且可以由代码的任何部分更改。当你从中读取它时,它的值已经改变了。
那么哪一个更好?无论你的用例是什么。他们都做不同的事情。