c# .net

c# - Cadena vs cadena



.net (12)

En C # hay objetos String y objetos de string .

¿Cuál es la diferencia entre los dos? ¿Cuáles son las mejores prácticas para usar?


En el futuro, intente compilar una aplicación que use ambos y luego use Reflector (cambie el idioma a IL) para ver el resultado compilado. Verás que no hay diferencia.


La versión en minúscula es solo un alias de la clase real String. No hay diferencia real en cuanto a IL generado.


Ninguna diferencia. System.String es estrictamente idéntico a la string . Las pautas comunes de codificación de C # indican que debe usar la palabra clave string .


No hay diferencia string es un alias que el compilador convierte en System.String.

De hecho, incluso tiene un alias en MSIL:

.method private hidebysig static void Main(string[] args) cil managed


No hay diferencia entre ellos. cadena es solo un alias para System.String. Cuando se compilan, ambos se compilan en el objeto System.String.


No hay diferencia porque el compilador convierte la cadena a System.String. Lo mismo con todos los tipos comunes (int va a System.Int32, etc.). Usamos el nombre simple para que se destaquen.


No hay diferencia. string (minúscula) es solo un alias para System.String.


No hay diferencia. string es una palabra clave de lenguaje C # que se refiere a la clase System.String, al igual que int es una palabra clave que hace referencia a System.Int32.


Son alias y son intercambiables. Sin embargo, estilísticamente, para las declaraciones, uso la cadena en minúscula, y para los métodos estáticos, uso String.

string foo = "bar"; if( foo != String.Empty ) { Console.WriteLine(String.Format("foo.Length = {0}", foo.Length)); }


Teniendo en cuenta que un "int" es diferente en algunos idiomas dependiendo del sistema de 16 bits / 32 bits, una "cadena" podría evolucionar en el futuro para que no sea lo mismo que System.String.

Pero por ahora lo es.



solo una nota: string / String no es el único par de alias: ej. Integer, Int32, int son todos alias.

@mliesen: no sucede en C #, no es como C. porque de C # no se crea el ejecutable sino un código por compilación, como java.