c# - convenciones de nomenclatura
¿Por qué existen las versiones en minúsculas y mayúsculas de la secuencia y que debo usar? (5)
Ambos son lo mismo.
Personalmente, prefiero usar la cadena en minúscula, la "azul", usando la palabra clave C # en lugar del nombre de la clase .NET por la misma razón que estoy usando int en lugar de Int32. Además, la letra minúscula no requiere la inclusión del espacio de nombres del sistema ...
De acuerdo, esta puede ser una pregunta tonta, pero no he podido encontrar ninguna información al respecto.
Son String.Empty y string.Empty lo mismo? Siempre me encuentro gravitando hacia el uso de la versión en mayúscula (String.Empty) porque prefiero el color y el aspecto en mi IDE que en la versión en minúsculas (string.Empty) ...
¿Existe una forma "correcta" de utilizar estos que difieren o se trata de preferencias personales? Suponía que los dos son iguales, pero para ser sincero, nunca pensé en ello hasta que, por alguna razón, hoy me preguntaba: "Si ambos existen, ambos deben existir por alguna razón".
¿ Hay alguna razón por la que alguien sabe? Si es así, ¿qué es? ¿Alguien puede iluminarme?
PD: "Los duplicados exactos" solo responden la mitad de la pregunta "¿cuál es correcto?", No el "¿por qué ambos existen?"
Exact Duplicate : ¿Cuál es la diferencia entre String y string en C #?
Exact Duplicate : String vs string en C #
Es conceptualmente similar a algo como esto:
using int=System.Int32
la cadena está asignada a la clase String AFAIK, por lo que son iguales.
Lo mismo es cierto para, por ejemplo, int e Int32.
Personalmente, prefiero usar String ya que tanto String como Object son referencias mientras que todos los otros tipos de base son tipos de valor. En mi mente, esa es la separación más clara.
En C #, los nombres de tipo de minúscula son alias para los nombres de tipo System.xxx
, por ejemplo, string
es igual a System.String
e int
es igual a System.Int32
.
Es una buena práctica usar estos alias de idioma para los nombres de tipo en lugar de su equivalente de marco, en aras de la coherencia. Entonces lo estás haciendo mal. ;-)
En cuanto a una razón por la que ambos existen, los tipos .NET existen porque están definidos en un estándar independiente del lenguaje para las bibliotecas .NET llamadas CTS (sistema de tipo común). Por qué C # define estos alias está más allá de mí (VB hace algo bastante similar). Supongo que las dos razones son
- Hábito. Haga que todos estos programadores C y Java usen C # proporcionando los mismos nombres para algunos tipos fundamentales.
- Pereza: no tiene que importar el espacio de nombres del
System
para usarlos.
EDITAR Dado que muchas personas parecen preferir la otra notación, permítanme señalar que esto no es de ninguna manera irrazonable. En realidad, se puede hacer un buen caso para el uso de los nombres de tipo CTS en lugar de las palabras clave de C # y algunos argumentos superficialmente buenos se ofrecen en las otras respuestas. Desde un punto de vista de pureza / estilo, probablemente estaría de acuerdo.
Sin embargo, considere si vale la pena romper una convención bien establecida que ayude a unificar el código en todos los proyectos.