上一篇简单的介绍了C#编程之中的泛型方法(https://blog.csdn.net/ICElike/article/details/102975368)
接下来,介绍泛型类以及泛型约束。(PS:基本上带<>的就可以将它理解为泛型)
- 首先,先介绍泛型类(泛型嘛,就是数据类型占位置的东东,用法跟数据类型一致),甩一串代码。
public class Generic<T>
{
public T number ;
public void Add(T t)
{
number = t;
Console.WriteLine($"传入的是{number.GetType()}类型的参数,值为{number}");
}
}
调用的时候,也跟普通方法一样,就不详解了。
2.泛型约束,解决了传值时的数据安全问题,不能什么都传过来。这里举个小小的例子,实行垃圾分类是一个新时尚,原来人们的垃圾分类意识浅薄,垃圾桶里可以放入任意的东西,比如生活垃圾、塑料瓶、废电池等等。实行垃圾分类以后,有了专门的可回收垃圾桶,有害垃圾桶等,有了这些约束就不能乱扔了,你得分类再往里面放。泛型约束也类似,就相当于垃圾捅上的标签。接下来,咱们还是用代码说话。
public class Recyclable //可回收垃圾的父类
{
public string Name { get; set; }
}
public class Cans : Recyclable //继承自Recyclable
{
public void Say()
{
Console.WriteLine("我是易拉罐,我是可回收垃圾!!!");
}
}
public class Parper:Recyclable //继承自Recyclable
{
public void Say()
{
Console.WriteLine("我是纸,我是可回收垃圾!!!");
}
}
public class Battery
{
public string Name{get;set;}
public void Say()
{
Console.WriteLine("我是电池,我是有害垃圾!!!");
}
}
接下来,我们定义约束一个泛型方法,约束为Recyclable类(可回收垃圾)
class Generic
{
//将T约束为Recyclable及其子类
public void Show<T>(T t) where T : Recyclable
{
Console.WriteLine($"{t.Name}");
}
}
在我们调用含有约束的方法时,他只接收Recyclable类(可回收垃圾),传入其他会出错,有图为证(传入有害垃圾会出错)