Pergunta

Em C # há objetos String e objetos string.

Qual é a diferença entre os dois? Quais são as melhores práticas sobre qual usar?

Foi útil?

Solução

Não há nenhuma diferença. string (minúsculas) é apenas um apelido para System.String.

Outras dicas

Não há diferença. System.String é estritamente idêntico ao string. Common C codificação diretrizes # indica que você deve usar a palavra-chave string.

Eles são aliases e são intercambiáveis. No entanto, estilisticamente, por declarações, eu uso a string em minúsculas, e para os métodos estáticos, eu uso da cadeia.

string foo = "bar";

if( foo != String.Empty )
{
   Console.WriteLine(String.Format("foo.Length = {0}", foo.Length));
}

Um é System.String o tipo .NET e um é específico para C #, que acaba por ser uma volta alias para System.String.

http://msdn.microsoft.com/ en-us / library / 362314fe (VS.71) .aspx

Não há uma diferença. string é um alias que os convertidos do compilador para System.String.

Na verdade, ele está mesmo alias em MSIL:

.method private hidebysig static void  Main(string[] args) cil managed

Não há nenhuma diferença entre eles. string é apenas um apelido para System.String. Quando compilado ambos são compilados para System.String objeto.

A versão minúscula é apenas um alias para a classe String real. Não há nenhuma diferença real na medida em que IL gerado.

Não há nenhuma diferença. string é uma palavra-chave linguagem C # que se refere à System.String classe, assim como int é uma palavra-chave que se refere a System.Int32.

No futuro, tentar compilar um aplicativo que usa tanto e depois usar refletor (alterar o idioma para IL) para visualizar a saída compilada. Você verá que não há diferença.

Não há nenhuma diferença porque string é convertida para System.String pelo compilador. Mesmo com todos os tipos comuns (int vai para System.Int32, etc). Nós usamos o nome simples para que eles se destacam.

Considerando que um “int” é diferente em algumas línguas, dependendo do sistema de 16bit / 32bit, uma "string" poderia no futuro evoluir para não ser o mesmo que System.String.

Mas, por enquanto é.

apenas uma nota bit: corda / String não é o único par de aliases: por exemplo. Integer, Int32, int são todos os aliases.

@mliesen:. Não aconteceu em C #, não é como C. isto porque a partir de C # você não cria executável, mas um código per-compilados, como java

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top