Cómo crear un método constante para un tipo inmutable?
-
06-09-2019 - |
Pregunta
Si usted tiene un tipo inmutable como esto:
struct Point3
{
}
y un miembro interior como origen:
public static const Point3 Origin = new Point3 (0,0,0);
se debe utilizar:
new Point3 (0,0,0)
Me parece que, dado que el tipo no se puede cambiar, por eso tiene muchos orígenes que son esencialmente la misma cosa? Al igual que nunca cambian 0, ¿verdad?
¿Cómo lograr lo mismo para los tipos inmutables?
Solución
public static readonly Point3 Origin = new Point3(0,0,0);
Otros consejos
Como se mencionó Andrew, no se puede utilizar para este const
porque no es una constante en tiempo de compilación.
Tenga en cuenta que si son va a utilizar un constructor en repetidas ocasiones, que sería mejor (desde el punto de vista del rendimiento) llamando a
new Point3()
de
new Point3(0, 0, 0)
El compilador sabe que la primera versión es sólo va a salir de memoria en blanco, y no es necesario llamar a ningún código.
Sin embargo, me gustaría ir junto con proporcionar un miembro Origin
y el uso que en todas partes en su lugar, siempre que sea posible:)