约束才行
约束的顺序
约束的类型
约束是控制泛型这匹烈马的缰绳,缩小泛型参数的范围。
约束的作用:缩小泛型参数的范围
约束的意义;只有添加了约束,才能调用泛型参数中的方法。
约束的类型:类名,class,struct,接口名,new()
约束的叠加规则
主约束只有一个类名,class,struct。接口约束任意多个
约束 约束 约束
约束的分类
约束叠加规则
约束的意义
什么是约束
约束:缩小泛型参数的范围。
只有添加了约束,才能调用泛型参数中(比如T)的方法。
约束的类型:
类名,改类或者继承改类的类;
class,任何类;
struct,任何值;
接口名,该接口类型或任何实现该接口的类型;
new(),带有无参共有构造函数的类。
约束叠加规则:
A、主约束,类名,class,struct,只能由1个;
B、接口约束,任意多个;
C、构造约束。
三个约束可以三个都有,也可以一个都没有。
使用where来进行约束。
void Cage<T> where T:Pet,IClimbTree,new()
{...}
//约束范围 class,接口
public void IsHappy<T>(T target) where T:Pet,ww
{
Console.WriteLine(target.ToString());
}
//调用
Cat b = new Cat("66");
Dog dog = new Dog("A");
b.IsHappy<Dog>(dog);
语法:
void Cage<T> where T:Pet,IClimbTree,new()
{
.....
}
约束叠加规则:
A.主约束 B.接口约束 C.构造约束
约束的意义:只有添加了约束,才能调用泛型参数种(比如T)的方法。
约束的类型:
类名、class 、struct、 接口名、new()
约束:缩小泛型参数的范围。
只有添加了约束,才能调用泛型参数中(比如T)的方法。
约束的类型:
类名,改类或者继承改类的类;
class,任何类;
struct,任何值;
接口名,该接口类型或任何实现该接口的类型;
new(),带有无参共有构造函数的类。
约束叠加规则:
A、主约束,类名,class,struct,只能由1个;
B、接口约束,任意多个;
C、构造约束。
三个约束可以三个都有,也可以一个都没有。
使用where来进行约束。
void Cage<T> where T:Pet,IClimbTree,new()
{...}
约束:就是控制泛型这匹烈马的缰绳!缩小泛型参数的范围。
约束的意义:只有添加了约束,才能调用泛型参数中(比如T)的方法。
约束的类型:类名,class,struct,接口名,new( )
约束叠加规则:
主约束:只能有一个
接口约束:任意多个
构造约束
泛型的约束
这一句话没有看懂……为什么说只有添加约束才能调用?约束不是用来约束泛型的范围的吗~
给泛型加约束条件
约束