2010-09-20 14 views

Respuesta

15

El tamaño máximo de todas las instancias de tipo de referencia (como una cadena) es limitado por CLR a 2 GB. Como un personaje en .NET toma 2 bytes, eso significa que una cadena puede contener un máximo de alrededor de mil millones de caracteres.

Tenga en cuenta que las cadenas .NET en realidad no están diseñadas para estos tamaños. Son inmutables y todas las operaciones de cadena crean nuevas instancias de cadena. Cuando tiene datos tan grandes, necesita diseñar a medida sus algoritmos y estructuras en memoria (y probablemente en el disco, para datos realmente grandes) en torno a lo que quiere hacer con él.

+0

¿Puede explicar mejor por qué un límite de 2 GB en el CLR equivale a "1G caracteres"? – StriplingWarrior

+0

@StriplingWarrior: tenga en cuenta que cada personaje toma 2 bytes en .NET. – dtb

+0

No puedo configurar 11 millones de caracteres en la variable de cadena? ¿Es cierto, ok? – Farna

Cuestiones relacionadas