无法在控制台中写入char

kam*_*ame 0 c# char console.writeline

我想在控制台中写一个字符.

这是我的代码.

using System;

namespace bla
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            int d = 5;
            char e = (char)d;
            Console.WriteLine("my Char: " + e);
            Console.WriteLine("my Char: " + e.ToString ()); // also doesn't work
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

相反,我只看到"我的字符:"作为输出,而不是预期的"我的字符:5".

Wai*_*Lee 5

您想要char e = '5';将"5"打印到控制台.

当你有

int d = 5;
char e = (char)d;
Run Code Online (Sandbox Code Playgroud)

您正在打印一个值为 5 的字符,这是您的问题的评论中指出的查询字符,而不是字符 "5".

字符"5"具有ASCII值 53(0x35十六进制-在ASCII 0x30是"0",0x39为"9",而另一个数字是0x3{d}其中{d}是数字); 你可以修改你的代码以这种方式打印"5":

char e = 0x35;
Run Code Online (Sandbox Code Playgroud)

注意你不需要在这里施放.但如果你从投intchar,你可以使用

int d = 0x35;
char e = (char)d;
Run Code Online (Sandbox Code Playgroud)

您可以通过执行类似操作来自行检查

char e = 0x35;
char f = '5';
bool check = e == f; // true
Run Code Online (Sandbox Code Playgroud)

如果你想要打印的角色变化,你可以做一些类似的事情

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);
}
Run Code Online (Sandbox Code Playgroud)