Jako .NET nie używa stylu C null
s, aby zakończyć ciąg znaków, w jaki sposób zachować przydzielony ciąg, ale zmienić jego długość, używając niebezpiecznego kodu?Niebezpieczny kod do zmiany długości (przez mutację!) Obiektu typu String?
Jak rozumiem .NET przy użyciu nagłówka 20 bajtów dla każdego ciągu, prawdopodobnie jest to gdzie długość ciąg jest przechowywany, czy istnieje, aby bezpośrednio zmodyfikować tę długość? Więc .NET będzie przechowywać ciąg w pamięci, ale kiedy zadzwonię pod numer .Length
, zwróci on .Length
Chcę.
jeśli to możliwe, także byłoby interesujące usłyszeć wszystkie szalone możliwych skutków ubocznych tego
UPDATE
próbuję to osiągnąć bez używania refleksji.
Należy zauważyć, że ciągi .NET są zakończony zerem. – SLaks
Do czego to jest potrzebne? – Jacob
@jacob jakiś zły eksperyment o zarządzaniu pamięcią :) Próbując przydzielić jedną dużą porcję pamięci i używać jej wielokrotnie, aby uniknąć fragmentacji LOH. –