Comment créer un membre const pour un type immuable?
-
06-09-2019 - |
Question
Si vous avez un type immuable comme ceci:
struct Point3
{
}
et un élément intérieur comme origine:
public static const Point3 Origin = new Point3 (0,0,0);
si vous utilisez:
new Point3 (0,0,0)
Il me semble que, puisque le type ne peut pas être changé, pourquoi ont de nombreuses origines qui sont essentiellement la même chose? Comme nous ne changeons 0, droit?
Comment obtenir la même chose pour les types immuables?
La solution
public static readonly Point3 Origin = new Point3(0,0,0);
Autres conseils
Comme mentionné Andrew, vous ne pouvez pas utiliser const
pour cela parce que ce n'est pas une constante de compilation.
Notez que si vous sont va utiliser un constructeur à plusieurs reprises, vous seriez mieux (d'un point de vue de la performance) appelant
new Point3()
que
new Point3(0, 0, 0)
Le compilateur sait que la première version va juste mémoire vierge dehors, et n'a pas besoin d'appeler un code.
Cependant, je vais avec fournir un membre de Origin
et en utilisant au lieu que partout, si possible:)