C#学习笔记-泛型
2014-05-15 11:47
232 查看
为泛型参数设定约束:
public int Compare<T>(T t1, T t2) where T : Salary { if (t1.BaseSalary > t2.BaseSalary) return 1; else return 0; }
参数t1、t2,增加约束之后就为其指定了类型,就是一个Salary,拥有了Salary的属性和方法;
可以为泛型指定的约束类型:
1、指定参数是值类型:
public void Method <T>(T t) where T : Struct {}
2、指定参数是引用类型:
public void Method <T>(T t) where T : Class { }
3、指定参数具有无参数的公共构造方法:
public void Method <T>(T t) where T : new() { }
CLR目前只支持无参数的构造方法约束。
4、指定T提供的类型参数必须是为U提供的参数,或者派生自U提供的参数:
Class Sample <U> { public void Method <T>(T t) where T :U }
在建立类的时候尽量考虑泛型,建立泛型的时候,应该始终考虑为泛型参数设定约束,约束使泛型参数成为一个实实在在的对象,具有了相应的属性和行为。
相关文章推荐
- C#中泛型学习笔记
- 新手菜鸟学习C#的笔记总结 之泛型
- [读书笔记]C#学习笔记四: C#2.0泛型 可控类型 匿名方法和迭代器
- C#中泛型学习笔记
- [读书笔记]C#学习笔记四: C#2.0泛型 可控类型 匿名方法和迭代器
- C#回顾学习笔记三十五:泛型集合List
- c# 泛型 - 学习笔记
- (转载)C#中泛型学习笔记
- 精通C#:Chapter9 集合与泛型-学习笔记
- [读书笔记]C#学习笔记四: C#2.0泛型 可控类型 匿名方法和迭代器
- C#学习笔记15-泛型
- c#学习笔记之泛型
- C#学习笔记-接口,集合与泛型
- C#学习笔记三: C#2.0泛型 可控类型 匿名方法和迭代器
- c# 泛型 - 学习笔记
- C#学习笔记:泛型委托Action<T>和Fun<TResult>
- [读书笔记]C#学习笔记七: C#4.0中微小改动-可选参数,泛型的可变性
- [读书笔记]C#学习笔记七: C#4.0中微小改动-可选参数,泛型的可变性
- C# in Depth Third Edition 学习笔记-- C#2.0: 解决C#1.0的问题 1 泛型
- [C#]C#学习笔记-接口,集合与泛型