C#编程之泛型类与泛型约束

上一篇简单的介绍了C#编程之中的泛型方法(https://blog.csdn.net/ICElike/article/details/102975368

接下来,介绍泛型类以及泛型约束。(PS:基本上带<>的就可以将它理解为泛型)

  1. 首先,先介绍泛型类(泛型嘛,就是数据类型占位置的东东,用法跟数据类型一致),甩一串代码。
    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类(可回收垃圾),传入其他会出错,有图为证(传入有害垃圾会出错)

                   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值