C#基础:泛型类和泛型方法

C#中的泛型能够将类型作为参数传递,创建类型是用符号T作为占位符代替实际类型,实例化时,用实际类型替换。

定义泛型类:

  1.  public class Farm<T> :IEnumerator<T>  where T :Animal//泛型类使用where关键字进行约束
  2.  {                                                                                     //struct值类型   class引用类型  interface接口类型 new()公共无参构造函数
  3.        private List<T> animals=new List<T>();
  4.         public void Add(T animal) => animals.Add(animal);//浪漫哒表达式
  5.         }
  6.         //泛型类中实现泛型方法    where关键字进行约束   泛型方法标识符U和类的标识符T最好不同的表示
  7.         public Farm<U> GetSpecies<U>() where U:T {
  8.             Farm<U> speciesFarm = new Farm<U>();
  9.             foreach (T item in animals)
  10.             {
  11.                 if (item is U)
  12.                 {
  13.                     speciesFarm.Animals.Add(item as U);
  14.                 }
  15.             }
  16.             return speciesFarm;
  17.         }
  18.         //泛型方法
  19.         public T GetT<T1>() => default(T);
  20. }
  21.     //非泛型类实现泛型方法
  22.     public class Defaulters {
  23.         public T GetDefaulter<T>() => default(T);
  24.     }
  25.     //泛型类实现泛型方法 类的泛型标识符不能和方法泛型标识符相同
  26.     public class Defaulterss<T1> {
  27.         public T2 GetDefaulterss<T2>() where T2:T1=> default(T2);
  28.     } 
  29.  
  30.  //泛型结构体
  31.     public struct MyStruct<T1, T2> {
  32.         public T1 item1;
  33.         public T2 item2;
  34.     }
  35.  
  36.     //泛型接口
  37.     public interface MyInterface<T> where T : Animal {
  38.         bool Breed(T animal1,T animal2);
  39.         T Old { get; }//泛型属性
  40.     } 
  41.  
  42. //泛型委托
  43. public delegate T DelegateGeneric<T>(T item);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值