抱歉,描述含糊。不久前,我有一个场景,当我在下面的代码中使用“ North”时,某些操作不起作用。但是,当我重新排列代码并像“ X”一样定义“ North”时,它就起作用了。对于我的一生,我不记得那是什么(那是另一堂课,而不是下面的课)。如果有任何区别,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); }
}
最佳答案
一种方法是有效的“只读”。这条路:
public static Bearing X
{
get { return new Bearing(0.0); }
}
每次阅读时都会返回一个新的
Bearing
。另一个仅在实例化时才具有默认值,并且可以通过代码的任何部分进行更改。当您从中读取时..它具有更改的值。
那么,哪个更好?无论您的用例是什么。他们俩都做不同的事情。
关于c# - 静态变量与静态属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21740263/