Frage

Wenn Sie eine unveränderliche Art wie diese:

struct Point3
{

}

und Mitglied im Innern wie Herkunft:

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

Sie verwenden sollten:

new Point3 (0,0,0)

Es scheint mir, dass, da der Typ nicht geändert werden kann, warum viele Ursachen haben, die im Wesentlichen die gleiche Sache sind? Wie wir nie 0 ändern, nicht wahr?

Wie das Gleiche für unveränderliche Typen erreichen?

War es hilfreich?

Lösung

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

Andere Tipps

Wie Andrew erwähnt, können Sie nicht const dafür verwenden, da es keine Kompilierung-Konstante ist.

Beachten Sie, dass sind gehen einen Konstruktor wiederholt verwenden, dann würden Sie besser dran (aus Performance-Sicht) Aufruf

new Point3()

als

new Point3(0, 0, 0)

Der Compiler weiß, dass die erste Version ist leer aus Speicher nur gehen, und braucht keinen Code zu nennen.

Allerdings würde ich gehen zusammen mit einem Origin Mitglied Bereitstellung und die Verwendung dieser überall statt, wo möglich:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top