A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在c#中怎样使用泛型啊?举个例子吧

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 何智杰 于 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});

评分

参与人数 2技术分 +2 黑马币 +2 收起 理由
宋天琪 + 2
职业规划-蔡红微老师 + 2

查看全部评分

回复 使用道具 举报
通过泛型可以定义类型安全的数据类型,最常用的就是创建集合类,也就是约束集合中的元素类型,如:List<T>,Dictionary<k,v>,用法如上面那位仁兄写的那样。。。
补充下遍历元素吧:(就用上面的数据吧)
foreach(object stu in students)
{
    Student stu1=(Student)stu;  //切记要强转
    console.writeLine(stu1.Name);
   console.writeLine(stu1.Name);
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
许全通 发表于 2012-4-9 20:01
通过泛型可以定义类型安全的数据类型,最常用的就是创建集合类,也就是约束集合中的元素类型,如:List,Dic ...

我认为,既然定义为了泛型集合就不必要再使用object类型了。这样子重复了转型的工作
直接使用 foreach(Student  stu in students) 就可以了啦

评分

参与人数 2技术分 +1 黑马币 +9 收起 理由
宋天琪 + 1
许全通 + 9 赞一个!

查看全部评分

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

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
何智杰 发表于 2012-4-10 07:34
我认为,既然定义为了泛型集合就不必要再使用object类型了。这样子重复了转型的工作
直接使用 foreach(St ...

是哦!!这么重要的我居然给搞错了!!我会记住的!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马