Come creare un membro const per un tipo immutabile?
-
06-09-2019 - |
Domanda
Se si dispone di un tipo immutabile, in questo modo:
struct Point3
{
}
e un membro di dentro come origine:
public static const Point3 Origin = new Point3 (0,0,0);
si dovrebbe usare:
new Point3 (0,0,0)
Mi sembra che da quando il tipo non può essere modificato, perché hanno molte origini che sono essenzialmente la stessa cosa? Come non abbiamo mai cambiamo 0, giusto?
Come ottenere la stessa cosa per i tipi immutabili?
Soluzione
public static readonly Point3 Origin = new Point3(0,0,0);
Altri suggerimenti
Come Andrew accennato, non è possibile utilizzare const
per questo, perché non è una costante della fase di compilazione.
Si noti che se si sono intenzione di utilizzare un costruttore più volte, si sarebbe meglio (dal punto di vista delle prestazioni) chiamando
new Point3()
di
new Point3(0, 0, 0)
Il compilatore sa che la prima versione è solo andare a vuoto di memoria, e non ha bisogno di chiamare qualsiasi codice.
Tuttavia, mi piacerebbe andare insieme a fornire un elemento Origin
e utilizzando tale ovunque, invece, per quanto possibile:)