Слово «юридический» может быть здесь неправильным.«Неправильно» это то, что я бы сказал.Это возможно , но строки определены как неизменяемые в C #.В любом случае, изменяя одно, вы нарушаете классовые инварианты.Среда выполнения может отреагировать на это в любом случае, в зависимости от того, что ей нравится, включая «явно работающий», «падение» или «кражу информации о вашей кредитной карте для покупки тако» *.Весь смысл ключевого слова unsafe
заключается в том, что вы вводите раздел своего кода, где вы говорите: «Хорошо, я знаю, что вы не можете показать, что это безопасно, но поверьте мне, я знаю, что я делаю, и это полностью так».
*: Более вероятный риск в этом конкретном случае состоит в том, что где-то между компилятором и несколькими этапами времени выполнения будет вполне оправдано при встраивании и постоянном сворачивании обращений к строковым литералам, но не других, в зависимости от небольших изменений в кодеЭто означает, что вы можете получить противоречивые результаты во время выполнения.Суть в том, что не делайте этого.