求助:C# 中接口list的理解 list<> 我不是很理解C#语法中关于接口的使用例如有list<class>是什么意思呢?应该是接口返回类型是class,但是我还是不清楚,对于list的理解帮我分析一下,刚刚查了些没发现我想要的答案。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是可以放很多类型list<char>list<byte>list<string>list<your_class>都可以用,是个容器来着,一般用作算法,搂主要看一下数据结构。 泛型,我一般把它当成链表,但它比链表好用(个人认为)它可已索引出节点的自由属性,arraylist就不行例如person类有三个属性name ,sex,agelist<person> 实例 list可以索引出 list[2].Namearraylist 实例 list 就不行了 List<>,泛型List也就是List中可以存放任何类型的数据,可以是int,char,string,class等等可以看成容器,放什么随便你 在C#中:1.接口:是一种规范和标准;是对继承单根性的扩展;是屏蔽了实现细节;使用方便团队协作开发;(1)接口中可以包含字段,属性,方法,索引器,但是都不能够实现,接口中的方法和属性; 定义一个接口: public interface ISampleInterface { void ShowName(); String Name{ get; set; } } 实现接口: public class MySample : ISampleInterface { public void ShowName(){ Console.WriteLiine("实现"); } }(2)定义一个接口的名称通常都以"I"开头,列如IComparable,IList.(3)如果类已经继承了一个父类,则以","分隔父类和接口.2.泛型:泛型是C#2.0中的一个新特性。通过泛型可以定义类型安全的数据类型,它最显著应用就是创建集合类,可以约束集合类内的元素类型。例如:List<T>和List<K,V>.在System.Collections.Generic命名空间中定义了许多泛型集合类,这些类可以用于代替ArrayList和HashTable.List<T>与ArrayList区别: List<T> Arrary不同点: 对所保存元素做类型约束 可以添加任何类型 添加/读取无需拆箱,装箱 添加/读取需要拆箱,装箱相同点: 通过索引访问集合中的元素 添加元素方法相同 删除元素方法相同定义一个List<T>泛型集合的方法如下:List<Student> student=new List<Student>();"<T>"中的T可以对集合中的元素类型进行约束,T表明集合中管理的元素类型.示例的泛型集合只能保存的Student类型的数据.注:泛型必需实例化.3.泛型接口:结合上面所解释的接口和泛型,我们在来看看泛型接口。泛型接口(IComparable<T>)和接口(IComparable)的功能是一样的,实现这个泛型接口IComparable<T>的类同样可以支持排序,区别与接口的就是IComparable<T>泛型接口对于比较对象的类型有这严格的约束,并且同样不需要类型转换.泛型接口和接口的最大区别就在于类型的约束。示例:public class NameComparer: IComparer<Student>{ public int Compare(Student x,Student y){ return("实现的方法类型参数都为'Student'"); }} 好理解,你就当它是一个list,顺序表了 只不过存的数据类型可以灵活多样,根据自己需要去定义了。 当做List控件来理解,只不过item可变 泛型集合List<T>——集合长度动态维护,数据类型一致。8楼正解 winform中datagidview问题 关于学习的两个大问题,好困扰,求各位大大指点迷津 c# 键盘事件问题 在线等 产生随机数.数字越小出现的概率越大 gridview动态绑定数据,如何将删除编辑列放到最后一列 关于property文件的操作,保存配置文件的问题 关于替换Url绝对路径 急 关于datagrid打印中分页的问题。。。。 程序生成成功,却运行不了 公司要求做DBMS,请大家多多指教! 怎样执行所有打开窗体中的组件中的方法 两数据库同步,快照问题
它可已索引出节点的自由属性,arraylist就不行
例如
person类有三个属性name ,sex,age
list<person> 实例 list可以索引出 list[2].Name
arraylist 实例 list 就不行了
也就是List中可以存放任何类型的数据,可以是int,char,string,class等等
可以看成容器,放什么随便你
(1)接口中可以包含字段,属性,方法,索引器,但是都不能够实现,接口中的方法和属性;
定义一个接口:
public interface ISampleInterface
{
void ShowName();
String Name{
get;
set;
}
}
实现接口:
public class MySample : ISampleInterface
{
public void ShowName(){
Console.WriteLiine("实现");
}
}
(2)定义一个接口的名称通常都以"I"开头,列如IComparable,IList.
(3)如果类已经继承了一个父类,则以","分隔父类和接口.2.泛型:泛型是C#2.0中的一个新特性。通过泛型可以定义类型安全的数据类型,它最显著应用就是创建集合类,可以
约束集合类内的元素类型。例如:List<T>和List<K,V>.
在System.Collections.Generic命名空间中定义了许多泛型集合类,这些类可以用于代替ArrayList和HashTable.
List<T>与ArrayList区别:
List<T> Arrary
不同点: 对所保存元素做类型约束 可以添加任何类型
添加/读取无需拆箱,装箱 添加/读取需要拆箱,装箱相同点: 通过索引访问集合中的元素
添加元素方法相同
删除元素方法相同定义一个List<T>泛型集合的方法如下:
List<Student> student=new List<Student>();
"<T>"中的T可以对集合中的元素类型进行约束,T表明集合中管理的元素类型.示例的泛型集合只能保存的Student类型的数据.注:泛型必需实例化.3.泛型接口:结合上面所解释的接口和泛型,我们在来看看泛型接口。泛型接口(IComparable<T>)和接口(IComparable)的
功能是一样的,实现这个泛型接口IComparable<T>的类同样可以支持排序,区别与接口的就是IComparable<T>泛型接口对于比较对象的类型有这严格的约
束,并且同样不需要类型转换.
泛型接口和接口的最大区别就在于类型的约束。
示例:
public class NameComparer: IComparer<Student>
{
public int Compare(Student x,Student y){
return("实现的方法类型参数都为'Student'");
}
}
8楼正解