0

辞書を作成し、それに 3 つのフィールドを挿入しました。

Dictionary<string, Map> targets = new Dictionary<string, Map>();
targets.Add("Pláž - střed", new Map("Pláž - sever", "Vrak letadla", "Džungle", "Vrak letadla"));
targets.Add("Vrak letadla", new Map("Pláž střed", "nothing", "Roští", "nothing"));
targets.Add("Roští", new Map("nothing", "nothing", "Tenký lesík", "Vrak letadla"));

field を取得しようとしたときtargets[Pláž - sever]、含まれているコンストラクタ パラメータをマップします"nothing", "nothing", "Tenký lesík", "Vrak letadla"- 最後のフィールドの値、値は 2 番目と 3 番目のフィールドで同じです。その問題を解決するのを手伝ってくれませんか? 3 番目のフィールドの値ではなく、その値を返すには 1 番目のフィールドが必要です。

4

3 に答える 3

5

あなたの質問は最初は少し奇妙ですが、あなたのクラスにはインスタンス フィールドではなく静的フィールドがあることがわかると思います。つまり、タイプの特定のインスタンスではなく、タイプに関連するフィールドのセットが 1 つあることを意味します。したがって、フィールドを上書きするたびに、以前のデータがすべて失われます。Map

あくまでも推測ですが…

于 2012-07-23T16:03:12.913 に答える
0

あなたがする必要があるのは:

var a1 = new Map("Pláž - sever", "Vrak letadla", "Džungle", "Vrak letadla"));
var a2 = new Map("Pláž střed", "nothing", "Roští", "nothing"));

このコードをデバッガーで実行し、a1 と a2 の値を調べます。static と宣言されたフィールドやその性質の何かなど、 Map クラスで何かが台無しになっている可能性があります

于 2012-07-23T16:06:05.647 に答える
0

で辞書にアイテムを追加していKey "Pláž - střed"ないため、そのアイテムを取得できません。単に利用できないからです。

そのため、キーでアイテムを追加して"Pláž - střed"からアクセスしてみてください。

于 2012-07-23T16:06:30.140 に答える