黑马程序员技术交流社区

标题: 在c#中怎样使用泛型啊?举个例子吧 [打印本页]

作者: 职业规划-蔡红微老师    时间: 2012-4-9 17:20
标题: 在c#中怎样使用泛型啊?举个例子吧
在c#中怎样使用泛型啊?举个例子吧
作者: 何智杰    时间: 2012-4-9 17:36
本帖最后由 何智杰 于 2012-4-9 17:38 编辑

比如你有一个Student类
class Student
{
   public string Name{get;set}
   public int Age{get;set}
}

然后有一个班级这个班级有学生若干个,你可以创建一个泛型集合students    List<Student> students=new List<Student>() 把所有的学生都存放到z这个集合里面;

通过students.Add()方法把学生添加到集合中
eg: students.Add(new Student(){ Name="张三",Age=15});

作者: 许全通    时间: 2012-4-9 20:01
通过泛型可以定义类型安全的数据类型,最常用的就是创建集合类,也就是约束集合中的元素类型,如:List<T>,Dictionary<k,v>,用法如上面那位仁兄写的那样。。。
补充下遍历元素吧:(就用上面的数据吧)
foreach(object stu in students)
{
    Student stu1=(Student)stu;  //切记要强转
    console.writeLine(stu1.Name);
   console.writeLine(stu1.Name);
}
作者: 何智杰    时间: 2012-4-10 07:34
许全通 发表于 2012-4-9 20:01
通过泛型可以定义类型安全的数据类型,最常用的就是创建集合类,也就是约束集合中的元素类型,如:List,Dic ...

我认为,既然定义为了泛型集合就不必要再使用object类型了。这样子重复了转型的工作
直接使用 foreach(Student  stu in students) 就可以了啦
作者: yoosou2012    时间: 2012-4-10 08:12
我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。
C#中数据类型有两大类:引用类型和值类型。引用类型如所有的类,值类型一般是语言的最基本类型,如int, long, struct等,在泛型的约束中,我们也可以大范围地限制类型T必须是引用类型或必须是值类型,分别对应的关键字是class和struct:
 泛型概述
1.使用泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能。
2.泛型最常见的用途是创建集合类。
3..NET Framework 类库在 System.Collections.Generic 命名空间中包含几个新的泛型集合类。应尽可能地使用这些类来代替普通的类,如 System.Collections 命名空间中的 ArrayList。
4.您可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。
5.可以对泛型类进行约束以访问特定数据类型的方法。
6.关于泛型数据类型中使用的类型的信息可在运行时通过反射获取。

作者: 许全通    时间: 2012-4-12 19:55
何智杰 发表于 2012-4-10 07:34
我认为,既然定义为了泛型集合就不必要再使用object类型了。这样子重复了转型的工作
直接使用 foreach(St ...

是哦!!这么重要的我居然给搞错了!!我会记住的!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2