2011-11-27 17 views
13

Duplicar posibles:
What is the difference between const and readonly?const frente a sólo lectura estática

Así que por lo que leí, en C#, const y static readonly será tanto hacer que un valor inalterable durante la ejecución de un programa de .

Sin embargo, const se debe utilizar con cantidades que es poco probable que cambien alguna vez (por ejemplo, pi, radio de tierra, litros por galón, etc.).

Por otro lado, static readonly se debe utilizar con valores que actualmente son constantes pero que pueden/cambiarán en el futuro (por ejemplo, versión de software, multiplicador en un algoritmo, etc.).

¿Lo tengo bien?

+0

En realidad, este es más bien el duplicado: http://stackoverflow.com/questions/755685/c-static-readonly-vs-const Lo vi antes de publicarlo, pero entra en profundidad antes de que lo explique con un simple inglés – s5s

+0

Ese es un buen enlace, especialmente la segunda respuesta con respecto a las diferencias de compilación entre const y static readonly. – Dunes

Respuesta

29

No sé sobre su segundo artículo (probablemente usaría una constante para una versión de software o un algoritmo ... constante) pero hay una diferencia clave entre los dos: const solo puede contener tipos básicos como string, bool, o tipos numéricos. static readonly puede contener cualquier objeto. Entonces, por ejemplo, a menudo uso static readonly para almacenar recursos como objetos Bitmap. Esos no pueden ser const.

+1

Oh, ya veo. Yo no sabía eso – s5s

Cuestiones relacionadas