c#里面声明一个Dictionary和IDictionary有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/06/04 08:54:56
声明一个类和声明一个接口感觉没有多大的区别

什么意思?
Dictionary是类(可以实例化),而IDictionary是接口(不能实例化),
Dictionary类实现了IDictionary接口而已

至于声明,当然也有区别,比如Dictionary类还实现了ISerializable、IDeserializationCallback接口
如果你要用到这2个接口的方法,就不能声明为IDictionary

Dictionary 这个是实体类,也就是说在这个类当中所有人方法和属性都是已经实现了的。

而IDictionary只是接供一个接口,你可以重写这个接口,来实现你自己的使用方式。

接口在意义上是没什么用,但是在对外的的项目上别人可以用你的接口来实现他自己的使用方式,也可以在他的类中继承你的接口来实现。
比如:
class Test
{
public string GetTest()
{
return "aaa";
}
}
public interface ITest
{
string GetTest();
}

class ATest:ITest
{
public string GetTest()
{
return "ccc";
}
}

类我就不说了!

IDictionary接口是所有字典类集合的基本接口,该接口与ICollection,IEnumerable接口是所有非泛型类集合的最基本的接口

IEnumerable接口用于公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。实现了该接口的集合可以用foreach语句迭代其中的元素

ICollection接口定义所有非泛型集合的大小、枚举数和同步方法。

IDictionary接口表示键/值对的