Кто-нибудь знает, как реализовать следующий код C ++ в C #
C ++
char t = '\0';
t += (char)3;
вывод t будет равен ‘\ x3’
если я реализую тот же код в C #
char t = '\0';
t += (char)3;
выход будет другим t = ‘\ u0003’
Как я мог получить такой же результат в C # ??
Спасибо
На обоих языках escape-последовательность \xnn
представляет символ с указанным байтовым значением nn
в шестнадцатеричном формате.
На обоих языках escape-последовательность \unnnn
представляет кодовую точку Unicode nnnn
,
Бывает, что значение 3 байта соответствует кодовой точке Юникода U + 0003 в кодировке, используемой C #. Вот почему вывод в C # \u0003
,
Код на обоих языках делает примерно одно и то же, и оба t
s будет хранить значение 3
после запуска обоих кодов. Разница заключается в формате вывода. Я не знаю как ты получаешь \u0003
как вывод в C #. Console.WriteLine
выведет символ, а не его кодовую точку Unicode.
Вы не можете получить тот же вывод в C #, потому что C # char
s представлены иначе, чем в C ++. C ++ char
s обычно 1 байт, в то время как C # char
s такие большие, как ushort
,
Других решений пока нет …