2016-08-16 36 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'的設計。挑一個,並與它一起去。 – nvoigt

+0

基本上我試圖做一個OdataActionParameters的對象。如果我使用自己的方式創建對象,那麼當我運行我的程序時,它會給出空例外 – 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);