2009-10-20 139 views
3

有没有什么办法可以将Dictionary封装成像DataDictionary这样的新类型,这样就可以不用在需要改变定义的地方使用它,而是可以在少数几个地方改变它。或者我应该把这个包装在另一个只暴露我需要的方面的类中?如何将泛型组合的概念封装成新类型?

回答

4

字典是不密封的,所以如果你想有一个正确的分型,做

class DataDictionary<K, V> : Dictionary<K,V> 
{ 
} 

而另一种选择是:

class DataDictionary<K, V> 
{ 
    private Dictionary<K,V> _data; 

} 

,让你更自由地设计自己的类型。
如果你指的是“如何消除类型参数”,使用这样的:

class DataDictionary : Dictionary<string, int> 
{ 
} 
1

可以使用您的代码文件的顶部指令中使用。

using DataDictionary = Dictionary<int,int> 

但是如果你有很多的代码文件,封装或者继承使用此数据字典是更加首选。