Qual é a diferença entre String e string em C#?
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****?
6203
3
string
é um apelido em C# paraSystem.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
Da mesma forma, eu acho que é geralmente recomendado utilizar o `String' se você precisar se referir especificamente à classe.
por exemplo
Este é o estilo que a Microsoft tende a usar em seus exemplos.
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 utilizarString
- 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 apelidosC#
(int
,string
, etc.). Eu pessoalmente acredito que você deve utilizar os apelidos `C#, mas essa é apenas a minha preferência pessoal.