首页 > 开发 > 综合 > 正文

C#泛型有什么好处

2024-07-21 02:26:15
字体:
来源:转载
供稿:网友

关于object类型:
1.object类型可以来引用任何类型的实例;
2.object类型可以存储任何类型的值;
3.可以定义object类型的参数;
4.可以把object作为返回类型。
但是--这样做有很大的问题

1.会因为程序员没有记住使用的类型而出错,造成类型不兼容;
2.值类型和引用类型的互化即装箱拆箱使系统性能下降。

c#2.0提出的泛型就是避免强制类型转换,减少装箱拆箱提高性能,减少错误。

system.collections.generic命名空间提供许多集合类和接口的泛型版本。

定义:
public class genericlist<t>
{
    public void add(t input)//t制定成类型参数
    public t add()//t制定成返回值
}
<t>的t是类型参数,起占位符的作用,编译时被真正类型取代。

使用泛型:
genericlist<int> list1 = new genericlist<int>();
genericlist<string> list2 = new genericlist<string>();
genericlist<类名> list3 = new genericlist<类名>();
genericlist<类名<int>> list4= new genericlist<类名<int>>();
以list1为例编译器生成以下的方法:
    public void add(int input)
    public int add()

有多个类型参数的泛型类:
public class 类名<t,u>

泛型约束:
确保泛型类使用的参数是提供特定方法的类型。
public class genericlist<t> where t : iemployee
假如iemployee接口包含a方法,编译器会验证用于替换t的类型一定要实现iemployee接口。

 

泛型方法:允许采取定义泛型类时采用的方式

//定义泛型方法static void swap<t>(ref t lhs, ref t rhs)
{ t temp; temp = lhs; lhs = rhs; rhs = temp; }
//使用泛型方法
public static void testswap(){    int a=1,b=3;swap<int>(ref a,ref b);
string s1="hello",s2="world";swap<string>(ref s1,ref s2);}
有泛型类,泛型接口,泛型方法,泛型委托

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表