dictary字符串值的编译常量值不正确

本文关键字:常量 不正确 编译 字符串 dictary | 更新日期: 2023-09-27 18:29:08

我正在尝试制作一个字典,将二进制转换为十六进制,这就是我所做的:

private Dictionary<string, char> binaryCharacterTohex = new Dictionary<string, char>
        {
            {'0000', "0"},
            {'0001', "1"},
            {'0010', "2"},
            {'0011', "3"},
            {'0100', "4"},
            {'0101', "5"},
            {'0110', "6"},
            {'0111', "7"},
            {'1000', "8"},
            {'1001', "9"},
            {'1010', "a"},
            {'1011', "b"},
            {'1100', "c"},
            {'1101', "d"},
            {'1110', "e"},
            {'1111', "f"}
        };

但它总是在我放在那里的每一个二进制字符串值(XXXX)上给我"糟糕的编译常量值",有人能帮我吗?

dictary字符串值的编译常量值不正确

C#中使用单引号表示字符,双引号表示字符串。你现在把它们倒过来了。把它们都关掉,它应该会起作用,就像这样:

private Dictionary<string, char> binaryCharacterTohex = new Dictionary<string, char>
{
    {"0000", '0'},
    {"0001", '1'},
    {"0010", '2'},
    {"0011", '3'},
    {"0100", '4'},
    {"0101", '5'},
    {"0110", '6'},
    {"0111", '7'},
    {"1000", '8'},
    {"1001", '9'},
    {"1010", 'a'},
    {"1011", 'b'},
    {"1100", 'c'},
    {"1101", 'd'},
    {"1110", 'e'},
    {"1111", 'f'}
};

'.'创建一个字符文字
字符只能是单个字符。

您需要一个带有双引号的字符串文本。

您反转了stringchar引号。

' '定义char" "定义string

您需要用{"0000", '0'}, 替换{'0000', "0"},

双引号:""用于封装字符串。单引号:''用于字符。你的编译器错误意味着你在代码中把它们倒过来了。你需要让你的代码看起来像这样:

private Dictionary<string, char> binaryCharacterTohex = new Dictionary<string, char>
        {
            {"0000", '0'},
            {"0001", '1'},
            //and so on
        };