如何创建一个不可变的类型const成员?
-
06-09-2019 - |
题
如果你有一个不可变型是这样的:
struct Point3
{
}
和一个部件的内部等来源:
public static const Point3 Origin = new Point3 (0,0,0);
您应该使用:
new Point3 (0,0,0)
在我看来,既然类型不能改变,为什么有很多起源的本质上是一回事吗?就像我们永远不变0,对吧?
如何实现同样的事情恒定类型?
解决方案
public static readonly Point3 Origin = new Point3(0,0,0);
其他提示
作为安德鲁提到的,你不能因为它不是一个编译时常使用const
这一点。
请注意,如果你的是的打算使用一个构造函数反复,你会更好(从性能上看)调用
new Point3()
大于
new Point3(0, 0, 0)
在编译器知道的第一个版本仅仅是将空出的内存,并且不需要调用任何代码。
然而,我会去一起提供Origin
构件和使用该到处代替,在可能的情况:)
不隶属于 StackOverflow