不変タイプのための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