15

構文の何が問題になっていますか? これで「ジェネシス」という値を取得できるようにしたいinfo["Gen"]["name"]

    public var info = new Dictionary<string, Dictionary<string, string>> {
    {"Gen", new Dictionary<string, string> {
    {"name", "Genesis"},
    {"chapters", "50"},
    {"before", ""},
    {"after", "Exod"}
    }},
    {"Exod", new Dictionary<string, string> {
    {"name", "Exodus"},
    {"chapters", "40"},
    {"before", "Gen"},
    {"after", "Lev"}
    }}};
4

2 に答える 2

35

を使用してクラス フィールドを定義することはできませんvar

varに変更Dictionary<string, Dictionary<string, string>>:

public Dictionary<string, Dictionary<string, string>> info =
    new Dictionary<string, Dictionary<string, string>>
    {
        {
            "Gen",
            new Dictionary<string, string>
            {
                {"name", "Genesis"},
                {"chapters", "50"},
                {"before", ""},
                {"after", "Exod"}
            }
        },
        {
            "Exod",
            new Dictionary<string, string>
            {
                {"name", "Exodus"},
                {"chapters", "40"},
                {"before", "Gen"},
                {"after", "Lev"}
            }
        }
    };

キーワードとその使用法の詳細については、こちらを参照してください。var

于 2013-03-19T13:45:01.080 に答える
3

からMSDN;

  • var は、ローカル変数が同じステートメントで宣言および初期化されている場合にのみ使用できます。変数を null に初期化することも、メソッド グループまたは無名関数に初期化することもできません。

  • var は、クラス スコープのフィールドでは使用できません。

  • var を使用して宣言された変数は、初期化式では使用できません。

に変更するだけvarですDictionary<string, Dictionary<string, string>>。お気に入り;

public Dictionary<string, Dictionary<string, string>> info =
    new Dictionary<string, Dictionary<string, string>>{}
于 2013-03-19T13:50:01.113 に答える