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

TKeyが数値(0〜9)で、値が記号になる辞書を作成します。

于 2012-08-02T20:22:13.437 に答える
2

私はそれをこのようにします:

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

取得するには:map[c - '0']入力範囲を確認することを忘れないでください。

于 2012-08-02T20:25:48.917 に答える