C#==>泛型

来源:互联网 发布:陶辉 nginx 编辑:程序博客网 时间:2024/06/04 23:26

1,除泛型之外,C#中如果在编译期间无法确认类型,就要使用Object类,但Object类是有问题的,

    ①Object类没有类型安全(即编译过程中无法判断类型转换的合法性),必须进行强制类型转换

    ②Object类在与值类型惊醒转换的过程中,会有性能损失

 

2,使用泛型,(Framework2.0之后提供)。泛型可以保证类型安全,因为编译器会用特定的类进行替换

 

如:

我们使用ArrayList类的add方法添加对象的过程中,因为参数是object类型,所以我们可以添加数值型,字符串,自定义类型等等的数据。

但如果我们在使用的时候,这样来调用foreach(int i in ArrayList)的话,无法转换为int型的内容会抛出异常,这种异常在编译的时候不会被发现。

而使用泛型类就会在编译阶段发现问题,及早解决,如我们使用List<int>定义的内容,会规定只能使用int型

 

3,代码的重用,C#定义的泛型可以在在.net的其他语言中使用。

 

4,C#中对泛型类的描述规约

① 泛型类型的名称用字母T作为前缀

② 如果没有特殊的要求,泛型类型允许任意类替代,且只使用了一个泛型类型,就可以用字符T作为泛型类型的名称

③ 如果泛型类型有特定的要求,或者使用类两个或多个泛型类型,就应该给泛型类型使用描述性名称。

 

 

原创粉丝点击