2

除了使用 case 语句之外,是否有更简单的方法将数字转换为 C# 中等效的键盘 Shift+[n]?假设使用标准英语键盘。

9=(
8=*
7=&
6=^
5=%
4=$
3=#
2=@
1=!
0=)

我不知道语言中内置的方法。

4

3 回答 3

3

正如评论中所建议的,您可以制作一个查找表,而不是使用switch语句。使用初始化语法,编码量被最小化。

Dictionary<int, char> shiftLookup = new Dictionary<int, char>
{
    {9, '('},
    {8, '*'},
    {7, '&'},
    {6, '^'},
    {5, '%'},
    {4, '$'},
    {3, '#'},
    {2, '@'},
    {1, '!'},
    {0, ')'}
};
于 2012-08-02T20:24:03.763 回答
2

我会这样做:

char[] map = new char[] { '!', '@', ... };

得到一个:map[c - '0']并且不要忘记检查输入范围。

于 2012-08-02T20:25:48.917 回答
2

创建一个字典,其中 TKey 将是一个数字 (0-9),而 value 将是一个符号。

于 2012-08-02T20:22:13.437 回答