Я написал программу (на С#), которая читает и обрабатывает программы MSIL, которые были сгенерированы из программ на С#. Я ошибочно предположил, что правила синтаксиса для строковых констант MSIL такие же, как для С#, но затем я столкнулся со следующей ситуацией:
Этот оператор С#
string s = "Do you wish to send anyway?";
скомпилируется в (среди других операторов MSIL) этот
IL_0128: ldstr "Do you wish to send anyway\?"
Я не ожидал обратную косую черту, которая используется, чтобы избежать вопросительного знака. Теперь я, очевидно, могу принять эту обратную косую черту в качестве части моей обработки, но в основном из любопытства, я хотел бы знать, есть ли список, где какие-то символы получают escape-код, когда компилятор С# преобразует константные строки С# в постоянные строки MSIL.
Спасибо.