Tipo de String em C#

5 respostas
R

Gostaria de saber qual o tipo de String em C# é primitivo como java ou é composto?Acho várias divergências pela net e no MSDN não chega a dizer que ele é de fato um tipo simples. Aqui está o site do MSDN http://msdn.microsoft.com/en-us/library/362314fe.aspx
Enfim… o que vocês acham?

5 Respostas

B

Não sei nada sobre C#, mas dá pra chamar métodos a partir delas? Ou mesmo acessar atributos, como um .length ou .size?

Obs: Estou pressupondo que por tipo composto você queira dizer objetos (se bem que objetos são estruturas compostas).

M

No C# não existem tipos primitivos tudo é objeto, tanto String quanto string
string na verdade é apenas uma referencia para a classe String.

Abraços

louds

Tanto no Java quanto no .NET strings são objetos. Olhe os fontes das implementações open source se estiver em dúvida ainda.

T

Só complementando o que disse o Louds, até as implementações são bastante semelhantes (ambas as classes java.lang.String e System.String são imutáveis, ambas internamente contém um array de caracteres, ambas usam internamente uma classe StringBuilder - java.lang.StringBuilder X System.Text.StringBuilder etc.

Existe uma palavra-chave no .NET (string) que é um sinônimo para System.String, assim como int é um sinônimo para System.Int32, object é um sinônimo para System.Object, e long é um sinônimo para System.Int64

louds

thingol:
Só complementando o que disse o Louds, até as implementações são bastante semelhantes (ambas as classes java.lang.String e System.String são imutáveis, ambas internamente contém um array de caracteres, ambas usam internamente uma classe StringBuilder - java.lang.StringBuilder X System.Text.StringBuilder etc.

Existe uma palavra-chave no .NET (string) que é um sinônimo para System.String, assim como int é um sinônimo para System.Int32, object é um sinônimo para System.Object, e long é um sinônimo para System.Int64

Quanto a implementação, tenho que discordar. Existe uma diferença fundamental entre como string são implementadas na CLR e no Java. No Java ela usa um array char[] pra guardar os valores; na CLR eles são embutidos na classe. Isso gera uma economia de memória substancial para strings pequenas.

Criado 14 de maio de 2008
Ultima resposta 15 de mai. de 2008
Respostas 5
Participantes 5