и ансейф кодом...
Если кратко:
есть конст строка, передается она в метод, где ансейф код. Строка записывается в указатель на чар (fixed (Char* ptr = s)), после чего изменяется.
И что должно случиться? Указатель - можно предположить, что строка измениться. Такое и было. Вопрос в том связано ли это с интернированием. Отключил интернирование ([assembly: CompilationRelaxationsAttribute(CompilationRelaxations.NoStringInterning)]), запустил - не изменяет строку. Ничего не понял. Полез в IL, пока копался, понял, что все пошло к чертям, когда строка перестала меняться вообще. Даже с интернированием. Код при этом такой же, как и исходный.
Собственно вопрос, что не так с интернироваными строками?
Не читал но ты можешь изменить значение строки через ансейф
Обсуждают сегодня