实现了接口,跟拥有的功能 比如为什么实现了A接口就可以排序?为什么实现了B接口就可以遍历,实现了接口就是实现了接口的方法吧,为什么实现了接口的方法就可以排序了呢?通常我们光继承接口,一般都不实现方法吧,那为什么能排序呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/u/20081023/20/74bb866e-cb3e-4cc4-a0be-64e80865b032.html我想 LZ 是想问这个问题吧?21楼:new List <string>() 是调用 List <T> 类的构造函数。是调用构造函数,并不是接口。 .net 的类库中现有的类,MSDN中如果说它继承了某个接口,就是说它实现了这个接口规定的方法。 [SerializableAttribute][ComVisibleAttribute(true)]public class ArrayList : IList, ICollection, IEnumerable, ICloneable比如说,MSDN 上说 ArrayList 类继承了 IList 接口,那我们就知道,ArrayList 类一定实现了 IList 接口中规定的所有方法,我们就可以放心对 ArrayList 类型的对象使用 IList 接口中的方法了。 如果我们自己写一个类:class MyClass : IList{ // ...}那么我们就要在 MyClass 中实现 IList 接口中规定的所有方法,写出相应的代码,否则编译器就会报错。 你试一下,下面的程序会报一大堆 CS0535 错误,告诉你必须实现接口 IList 中规定的方法:using System.Collections;class MyClass : IList{ static void Main() { }} using System;// 下面的程序报 CS0535 错误class C : IDisposable{}// 下面的程序就没问题:class D : IDisposable{ void IDisposable.Dispose() {} public void Dispose() {} static void Main() { using (D d = new D()) {} }} 我们反过来想吧,如果你来实现遍历功能,需要定义一个遍历功能类(FOREACHCLASS).可是我们的操作对象是谁呢?是class1?class2?还是class3?如何才能让我们这个遍历功能类应用到更多的类呢?这时我们想到,其实不管操作的类型是什么,只要保证它具备必要的行为(movenext(将当前枚举指针向后移一位),reset(将指针调到最初位置),GetCurrent(获取当前项)).那我们是不是就可以对它进行遍历了?那如何限定操作对象具备这些行为呢?这就是接口的作用.我们操作的将不在是具体的类型.而是接口就是只包含了限定行为实现的类型. 求winform自带最大最小化方法 线程 sleep问题 C#中如何查看SQL事务日志 C#调用VC的DLL涉及到结构参数,急啊 急救~~~请教关于水晶报表的问题! TCP连接回调出错:远程主机强迫关闭了一个现有的连接 C#到底有什么用? 请教一个初学者的问题!谢谢 c#中 如何实现发邮件动作,是不是用smtp对象,可我不知道怎么用,还请多指教 请教各位大侠,用 WMI 如何关闭远端计算机? 关于数据绑定 我很急啊,帮帮忙%……………………
[ComVisibleAttribute(true)]
public class ArrayList : IList, ICollection,
IEnumerable, ICloneable比如说,MSDN 上说 ArrayList 类继承了 IList 接口,那我们就知道,ArrayList 类一定实现了 IList 接口中规定的所有方法,我们就可以放心对 ArrayList 类型的对象使用 IList 接口中的方法了。
{
// ...
}那么我们就要在 MyClass 中实现 IList 接口中规定的所有方法,写出相应的代码,否则编译器就会报错。
{
static void Main()
{
}
}
class C : IDisposable
{
}
// 下面的程序就没问题:
class D : IDisposable
{
void IDisposable.Dispose() {}
public void Dispose() {} static void Main()
{
using (D d = new D()) {}
}
}
可是我们的操作对象是谁呢?是class1?class2?还是class3?如何才能让我们这个遍历功能类应用到更多的类呢?这时我们想到,其实不管操作的类型是什么,只要保证它具备必要的行为(movenext(将当前枚举指针向后移一位),reset(将指针调到最初位置),GetCurrent(获取当前项)).那我们是不是就可以对它进行遍历了?那如何限定操作对象具备这些行为呢?这就是接口的作用.我们操作的将不在是具体的类型.而是接口就是只包含了限定行为实现的类型.