2017-09-10 31 views
0

ここに学生。辞書入力キー(C#)を作成するユーザー入力

現在のC#プロジェクトで作業しています。

トランプカードはList<Card>Dictionary<string, List<Card>>にする必要があります。

リストは個別に作成され、辞書はカードのコレクションを保持します。コレクションからカードを追加または削除することができます。

私は、プログラムの実行中にエラーがある、と私は私が作成したいキーの名前を入力辞書のキーオフに基づいて、ユーザの入力

を作成するトラブルを抱えています。

オブジェクト参照がオブジェクトのインスタンスに設定されていません。ここで

コードブロックです:

Console.Write("What is the name of this collection? "); 
string collectionName = Console.ReadLine(); 
bool found = currentManager.Collections.ContainsKey(collectionName); 
if (!found) 
{ 
    currentManager.Collections.Add(collectionName, null); 
} 
else 
    Console.WriteLine("That collection name has already been used."); 

私は私の辞書という名前_collectionsで、CollectionManagerクラスを使用しています。これはここで呼び出されています:

public Dictionary<string, List<Card>> Collections 
    { 
     get 
     { 
      return _collections; 
     } 
     set 
     { 
      _collections = value; 
     } 
    } 
+0

。あなたが提供したコードでは、伝えにくいです。 – Adriani6

+0

定義されていないものを決定するのに役立つコードの他の部分はありますか?壊れたセクションと比較して、すべてを投稿し、判読不能な量のコードを残したいとは思わなかっただけです。 –

+0

私はこの問題がコレクションのセッターの中にあると思います。あなたのプライベート辞書 '_collections'は辞書の新しいインスタンスで初期化されていないかもしれません。したがって、あなたは 'Private Dictionary > _collections'の場所にいます。 'private Dictionary > _collections = new Dictionary >();でなければなりません。 「これをチェックしてください。私はちょうどC#でプロパティを使い始めたときに同じ痛みを感じました。 – Mitrucho

答えて

0

辞書インスタンスに_collections参照が初期化されていますか?エラーメッセージに基づいて、_collectionsがインスタンスを指していないように見えます。

0
にあなたのプロパティを変更し

:何かが定義されていない、どちらかCollectionManagerが必要なときに辞書に定義またはインスタンスがクラスの一つで作られていない持っていません

public Dictionary<string, List<Card>> Collections {get;set;} = new Dictionary<string, List<Card>>(); 
+1

C#の最新バージョンが使用されていると仮定します。 – Adriani6

関連する問題