0

次のような不変型がある場合:

struct Point3
{

}

Origin のような内部メンバー:

public static const Point3 Origin = new Point3 (0,0,0);

使用する必要があります:

new Point3 (0,0,0)

?

型は変えられないのに、本質的に同じものが多いのはなぜだろう?0 を変更することはありませんよね?

不変型で同じことを達成するにはどうすればよいですか?

4

2 に答える 2

7
public static readonly Point3 Origin = new Point3(0,0,0);
于 2009-05-26T20:40:21.233 に答える
1

constアンドリューが述べたように、これはコンパイル時の定数ではないため、これには使用できません。

コンストラクターを繰り返し使用する場合は、(パフォーマンスの観点から) 呼び出した方がよいことに注意してください。

new Point3()

よりも

new Point3(0, 0, 0)

コンパイラは、最初のバージョンがメモリを空にするだけであり、コードを呼び出す必要がないことを認識しています。

ただし、Originメンバーを提供し、可能な場合は代わりにどこでもそれを使用することに同意します:)

于 2009-05-26T20:45:46.153 に答える