Вы хотите, чтобы char e = '5';
напечатал «5» на консоли.
Если у вас есть
int d = 5;
char e = (char)d;
вы печатаете символ с значением 5, который является Enquiry character как указано в комментариях к вашему вопросу, не характера «5».
Символ «5» имеет ASCII value 53 (0x35
в шестнадцатеричном - в ASCII 0x30
равен «0», это 0x39
«9», а остальные цифры 0x3{d}
, где {d}
является цифру); вы также можете изменить свой код, чтобы напечатать «5» следующим образом:
char e = 0x35;
Обратите внимание, что здесь не нужно указывать. но если вы хотите бросить из int
в char
, вы можете использовать
int d = 0x35;
char e = (char)d;
Вы можете проверить это самостоятельно, делая что-то вроде
char e = 0x35;
char f = '5';
bool check = e == f; // true
Если вы хотите, чтобы персонаж печатается на изменить, вы можете сделать что-то вроде
private void printNumberToConsole(int number)
{
if (number < 0 || number > 9)
throw new ArgumentException("'number' must be between 0 and 9");
char e = '0' + (char)number; // '0' == 0x30
Console.WriteLine("my Char: " + e);
}
Что ты хочешь печатать именно? Ваш код печатает запрос. –
См. Выше. – kame
Если вы хотите напечатать '5', то почему вы отсылаете его на' char'? Удалите символ 'char e = (char) d;' line и print 'd', тогда оператор' + 'обработает его. Вы не должны писать строку кода, которую вы не понимаете. –