C# - Diferença entre string e String
Você sabe a diferença entre string e String ? Qual é mais indicada para uso e quando ? |
Na linguagem C# string é apenas um alias (um atalho) para a classe String no .NET Framework, e, da mesma forma, cada tipo na linguagem C# possui o seu equivalente no .NET Framework. Ex: int mapeia para int16 e int32.
Apenas para constar veja abaixo outros aliases existente na linguagem c#:
object: System.Object
string: System.String
bool: System.Boolean
byte: System.Byte
sbyte: System.SByte
short: System.Int16
ushort: System.UInt16
int: System.Int32
uint: System.UInt32
long: System.Int64
ulong: System.UInt64
float: System.Single
double: System.Double
decimal: System.Decimal
char: System.Char
No caso de string e String não existe diferença alguma seja no desempenho, nos membros disponíveis, na forma como o código é gerado e no que elas podem fazer; ou seja, são exatamente iguais com diferenças muito sutís.
Assim String refere-se à classe definida no namespace System.String, enquanto que string é uma palavra-chave especial que define um tipo de compilação.
Apenas para ilustrar, no código a seguir temos a utilização de string e String exibindo a mesma mensagem visto que elas estão referenciando o mesmo tipo : a classe String.
1- string
2- String
Agora vejamos algumas diferenças sutis entre string e String:
string não pode ser usada na reflexão. Para isso use String;
String pode ser usado para criar outro alias. Ex:
Criamos o alias minhaString do tipo System.String. Isso é possível mas não é recomendado.
O estilo seguido nos exemplos da Microsoft aponta para a utilização de string para declarar variáveis e String para acessar seus membros estáticos. Ex:
E estamos conversados...
"Levando ele mesmo(Jesus) em seu corpo os nossos
pecados sobre o madeiro, para que, mortos para os pecados, pudéssemos viver para
a justiça; e pelas suas feridas fostes sarados."
1 Pedro 2:24
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/builtin-types/reference-types
https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/strings/