Exemplo (notar o caso):
string s = "Hello world!";
String s = "Hello world!";
Quais são as *guias*** para o uso de cada uma? E quais são as diferenças****?
string
é um apelido em C# para System.String
.
Por isso, tecnicamente, não há diferença. É como int
vs. System.Int32
.
No que diz respeito às directrizes, é geralmente recomendado utilizar o "string" sempre que se estiver a referir a um objecto.
por exemplo
string place = "world";
Da mesma forma, eu acho que é geralmente recomendado utilizar o `String' se você precisar se referir especificamente à classe.
por exemplo
string greet = String.Format("Hello {0}!", place);
Parece que a orientação nesta área pode ter mudado, já que StyleCop agora impõe o uso dos apelidos específicos em C#.
System.String' é a classe string .NET - em C# string' é um apelido para
System.String' - então em uso eles são os mesmos.
Quanto às diretrizes, eu não ficaria muito atolado e apenas usaria o que você quiser - há coisas mais importantes na vida e o código vai ser o mesmo de qualquer maneira.
Se vocês se encontram construindo sistemas onde é necessário especificar o tamanho dos inteiros que estão utilizando e assim tendem a utilizar Int16
, Int32
, UInt16
, UInt32
etc. então pode parecer mais natural utilizar String
- e ao mover-se entre diferentes linguagens .net pode tornar as coisas mais compreensíveis - caso contrário eu utilizaria string e int.
A letra minúscula "String" é um apelido para "System.String".
Eles são os mesmos em C#
.
Há um debate sobre se você deve utilizar os tipos de Sistema (System.Int32
, System.String
, etc.) ou os apelidos C#
(int
, string
, etc.). Eu pessoalmente acredito que você deve utilizar os apelidos `C#, mas essa é apenas a minha preferência pessoal.