次のような不変型がある場合:
struct Point3
{
}
Origin のような内部メンバー:
public static const Point3 Origin = new Point3 (0,0,0);
使用する必要があります:
new Point3 (0,0,0)
?
型は変えられないのに、本質的に同じものが多いのはなぜだろう?0 を変更することはありませんよね?
不変型で同じことを達成するにはどうすればよいですか?
次のような不変型がある場合:
struct Point3
{
}
Origin のような内部メンバー:
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
メンバーを提供し、可能な場合は代わりにどこでもそれを使用することに同意します:)