En C# hay String
objetos y string
objetos.Cadena vs cadena
¿Cuál es la diferencia entre los dos? ¿Cuáles son las mejores prácticas para usar?
En C# hay String
objetos y string
objetos.Cadena vs cadena
¿Cuál es la diferencia entre los dos? ¿Cuáles son las mejores prácticas para usar?
No hay diferencia. string (minúscula) es solo un alias para System.String.
No hay ninguna diferencia. string es un alias que el compilador convierte en System.String.
De hecho, es incluso un alias en MSIL:
.method private hidebysig static void Main(string[] args) cil managed
No hay ninguna diferencia entre ellos. cadena es solo un alias para System.String. Cuando se compilan, ambos se compilan en el objeto System.String.
La versión en minúscula es solo un alias de la clase real String. No hay diferencia real en cuanto a IL generado.
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));
}
No hay diferencia porque el compilador convierte la cadena en System.String. Lo mismo con todos los tipos comunes (int va a System.Int32, etc.). Usamos el nombre simple para que se destaquen.
Sin diferencia. System.String
es estrictamente idéntico a string
. Las pautas comunes de codificación de C# indican que debe usar la palabra clave string
.
Uno es System.String el .Net Type y el otro es específico para C#, que resulta ser un alias de nuevo a System.String.
http://msdn.microsoft.com/en-us/library/362314fe(VS.71).aspx
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.
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.
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 de bit: cadena/Cadena no es el único par de alias: por ej. Integer, Int32, int son todos alias.
@mliesen: no sucede en C#, no es como C. esto porque desde C# no se crea el ejecutable sino un código por compilación, como java.
También puede encontrar útil esta [pregunta y respuesta] (http://stackoverflow.com/questions/7074/in-c-what-is-the-difference-between-string-and-string). –