如果你有这样的不可变类型:
struct Point3
{
}
和内部成员一样:
public static const Point3 Origin = new Point3 (0,0,0);
你应该使用:
new Point3 (0,0,0)
在我看来,由于这种类型无法改变,为什么有许多起源本质上是相同的?就像我们永远不会改变0,对吧?
如何为不可变类型实现相同的功能?
答案 0 :(得分:7)
public static readonly Point3 Origin = new Point3(0,0,0);
答案 1 :(得分:1)
正如安德鲁所说,你不能使用const
因为它不是编译时常量。
请注意,如果 要重复使用构造函数,那么从性能的角度来看,最好是调用
new Point3()
大于
new Point3(0, 0, 0)
编译器知道第一个版本只是将内存空白,不需要调用任何代码。
但是,我会继续提供一个Origin
成员并在可能的地方使用它,而不是:)