Ejemplo (nota el caso):
string s = "Hello world!";
String s = "Hello world!";
¿Cuáles son las directrices para el uso de cada una? ¿Y cuáles son las diferencias?
string
es un alias en C# para System.String
.
Así que, técnicamente, no hay ninguna diferencia. Es como int
vs. System.Int32
.
En cuanto a las directrices, en general se recomienda utilizar cadena
cada vez que se refiere a un objeto.
Por ejemplo
string place = "world";
Del mismo modo, creo que en general se recomienda usar String
si necesitas referirte específicamente a la clase.
Por ejemplo
string greet = String.Format("Hello {0}!", place);
Parece que la orientación en esta área puede haber cambiado, ya que StyleCop ahora impone el uso de los alias específicos de C#.
System.String
es la clase string de .NET - en C# string
es un alias de System.String
- así que en uso son lo mismo.
En cuanto a las directrices, yo no me atascaría demasiado y usaría lo que te apetezca: hay cosas más importantes en la vida y el código va a ser el mismo de todos modos.
Si te encuentras construyendo sistemas en los que es necesario especificar el tamaño de los enteros que estás utilizando y por lo tanto tiendes a utilizar Int16
, Int32
, UInt16
, UInt32
etc. entonces puede parecer más natural utilizar String
- y cuando se mueve entre diferentes lenguajes .net puede hacer las cosas más comprensibles - de lo contrario yo usaría string e int.
Minúsculas cadena
es un alias para System.String
.
Son iguales en C#
.
Hay un debate sobre si debes usar los tipos de System (System.Int32
, System.String
, etc.) o los alias de C#
(int
, string
, etc). Personalmente creo que deberías usar los alias de C#, pero eso es sólo mi preferencia personal.