Diferença entre “String” e “string” no .NET e qual é o melhor?

14

No .NET Framework, pelo menos na linguagem C #, temos duas "versões" do tipo string:

  • "string"
  • "String"

Parece que eles são intercambiáveis, mas eles são realmente? Se eles não são intercambiáveis, geralmente é melhor usar um em vez do outro, e em que circunstâncias?

    
por Cyberherbalist 11.04.2012 / 23:16
fonte

6 respostas

29

Bem, de acordo com o MSDN

string is an alias for String in the .NET Framework.

Onde "String" é de fato System.String .

Eu diria que eles são intercambiáveis e não há diferença quando e onde você deve usar um ou outro.

Seria melhor ser consistente com o que você usou.

    
por 11.04.2012 / 23:19
fonte
20

Como apontado, eles são a mesma coisa e string é apenas um alias para String .

Por que vale a pena, eu uso string para declarar tipos - variáveis, propriedades, valores de retorno e parâmetros. Isso é consistente com o uso de outros tipos de sistema - int , bool , var etc (embora Int32 e Boolean também estejam corretos).

Eu uso String ao usar os métodos estáticos na classe String, como String.Split() ou String.IsNullOrEmpty() . Eu sinto que isso faz mais sentido porque os métodos pertencem a uma classe, e é consistente com o modo como eu uso outros métodos estáticos.

    
por 12.04.2012 / 07:04
fonte
4

Sugiro usar string em minúsculas. Em maiúscula, String usará a primeira classe chamada String que encontrar nos namespaces importados ... que geralmente é System.String . É possível que sua própria classe String seja usada.

    
por 11.04.2012 / 23:52
fonte
4

string é uma palavra-chave do C # que é simplesmente um alias para o System.String

.. mas como é uma palavra-chave, seu editor de coloração de sintaxe / IDE mostrará na cor da palavra-chave, mesmo como int, double, if, else etc. Estilisticamente, você pode preferir usar a palavra-chave em vez da System.String type (ou apenas String depois de ter feito using System; ).

No entanto, esse é um ponto de nicho, pois embora bool , char , int , double e string sejam todos aliases de palavra-chave para tipos de sistema, string é uma saída ímpar como é um tipo de referência e os outros são tipos de valor.

    
por 12.04.2012 / 10:38
fonte
2

string é apenas um alias para String , eles são basicamente os mesmos.

Você pode usar o que preferir, embora eu geralmente use string quando estou planejando usá-lo como um tipo de dados primitivo (semelhante a int , float ou bool ) e String quando estou planejando usá-lo como um objeto / classe. Por exemplo:

string foo = "   ";
if (String.isNullOrWhitespace(foo)) 
{
    // ...
}

No caso acima, estou pensando em usar foo simplesmente para armazenar algum texto (efetivamente como primitivo), então eu uso string ; no entanto, quando eu chamo String.isNullOrWhitespace(string) , uso String . Eu faço isso, porque geralmente a primeira letra dos nomes de classe são capitalizados ( String ) enquanto a primeira letra de primitivos (como int ) não são.

    
por 12.04.2012 / 00:47
fonte
-2

String é usada com namespace System.String, string é usada especificação de compilador C #, além disso System.String é valor de tipo de referência. Você é o preferido para lidar com objetos do sistema, string apenas para fins literais. Sistema e sistema trabalhando ambos é o mesmo.

string TC = new System.String('/', 5);

A string é usada para comparar, igual e outros propósitos também.

    
por 01.05.2014 / 13:14
fonte

Tags