泛型笔记
来源:互联网 发布:好好说话值得买吗 知乎 编辑:程序博客网 时间:2024/04/28 11:53
Default关键字:
可以取泛型类的默认值,值类型返回0;引用类型返回Null。
如:Default(T);
using关键字:
using list = ListedList<int, string>;
list obj = new list();
这里的using是为泛型起别名。
where关键字:
1. 实现泛型约束,如 where K : IComparable
2. 约束要放在类的继承列表之后。
3. 多个约束使用逗号分开,如 where K : IComparable<K>, IConvertable
4. 可以同时约束一个基类以及一个或多个接口,但是该基类必须首先出现在派生约束列表中,如 where K : myBaseClass, IComparable<K>, IConvertable
5. 可以约束泛型类的继承关系,如 public class MyClass<T,U> where T : U
6. 约束泛型类必须具有某个类型的构造函数,如 class Node<K,T> where T : new()。构造函数约束必须放在约束列表的最后。
7. 值类型约束:where T : struct
8. 引用类型约束:where T : class
泛型类的类型转换:
1. 泛型类的约束派生类或接口将会限定其可以隐式转换的类别。
2. 编译器允许将泛型类显式强制转换到其他任何接口。
3. 可以使用Object类型做为泛型类与某个类进行转换的中介。
4. 使用is和as运算符可以增强安全性。
泛型在继承中的使用:
1. 可以指定子类继承父类的具体实参类型。如:
public class BaseClass<T>
{...}
public class SubClass : BaseClass<int>
{...}
2. 也可以继承父类的泛型参数类型。如:
public class BaseClass<T>
{...}
public class SubClass<T> : BaseClass<T>
{...}
3. 父类泛型如果有约束,子类在继承时必须重复该约束。
泛型方法:
1. 方法可以使用其自己的泛型类型作为参数或返回值,哪怕是类本
身并未使用泛型。
2. 调用泛型方法时,可以不指定泛型的实际类型,系统可以自动根
据参数类型推断泛型类型。
3. 泛型方法的泛型类也可以指定约束。
泛型委托:
1. 委托中也可以使用泛型。
2. 委托也可以定义自己的泛型类型。
3. 在类的外面定义的委托也可以使用泛型。
泛型与反射:
1. 反射中也可以使用泛型,Type可以表示一个绑定或未绑定实际类
型的泛型类。
2. typeof和GetType()可以对泛型参数进行操作。
3. 未绑字泛型类使用空尖括号表示,如:typeof(LinkedList<,>)。
4. type类中新增了方法和属性以支持泛型。
其它:
1. 不允许定义泛型属性,但属性里面可以使用泛型实参。
2. DotNet2.0中System.Collections.Generic中是支持泛型的集合。
3. Web Service的方法中不能使用泛型。
4. 服务组件的不能使用泛型。
PS:
Debug.Assert —— 原来C#支持断言;
- 泛型笔记
- 泛型学习笔记
- 泛型学习笔记
- 泛型学习笔记
- 泛型学习笔记
- 泛型学习笔记
- 泛型笔记
- 泛型笔记1
- 泛型学习笔记
- java 泛型笔记
- 泛型笔记
- 泛型笔记
- 泛型学习笔记
- 泛型学习笔记
- java泛型笔记
- 泛型学习笔记
- 泛型笔记
- C++泛型笔记
- 很不错的网页特效库
- 添加DataGrid行的颜色
- 测试活动的五个要素
- C# 窗体更换背景图片
- 常用正则表达式
- 泛型笔记
- 讨论:GetMessage()的第二个参数使用
- 如何用java调用linux操作系统下的命令行
- 读写XML
- [C#问题]WebBrowser在Form程序中使用的感想。
- C# 模拟鼠标操作
- 获取网卡信息
- Eclipse+MyEclipse+Struts+Hibernate+MySql动画系列教程下载
- asp.net下的日历控件源代码