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?

È stato utile?

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:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top