2016-08-16 5 views
0

クラスはクラスDictionaryを継承します。どのようにしてそのクラスのオブジェクトを作ることができますか?拡張するクラスのオブジェクトを作成する方法

Class A : Dictionary <string , object> 
{ 
    A(); 
} 

Dictionary<string , object> d=new Dictionary<string , object>(); 

A a= new A(d); 

上記のコードは機能しません。

Dictionary<string, object> p = new Dictionary<string, object>() 
     { 
      {"PKeyId","81614-901-000001-124"} 
     }; 
     ODataActionParameters parameter = (ODataActionParameters) new Dictionary<string, object>(p); 

上記のコードが原因です。

+1

なぜそれが機能するはずですか?そのようには機能しません。 'A a = new A();'と呼ぶだけです。あなたは 'has-a'と' is-a'デザインを混在させているようです。 1つを選び、それと一緒に行く。 – nvoigt

+0

基本的に私はOdataActionParametersのオブジェクトを作成しようとしています。あなたの方法を使ってオブジェクトを作成すると、私のプログラムを実行するとnull例外が発生します – alice

+1

デバッグのヘルプが必要な場合は、[mcve]を投稿してください。 – nvoigt

答えて

1

基本クラスのコンストラクタを次のように呼び出すことができます。これは何ですか?

public class A : Dictionary<string, object> 
{ 
    public A(IDictionary<string, object> dictionary) : base(dictionary) 
    { } 
} 

Dictionary<string, object> d = new Dictionary<string, object>(); 

A a = new A(d); 
関連する問題