泛型个人小札记1

本文详细介绍了C#中的泛型类定义,包括结构体、类、无参构造函数、基类和接口约束。同时讲解了泛型方法的使用,如VoidB(),以及泛型委托CommandDelegate的创建。此外,还探讨了如何在属性中应用泛型,通过反射实现泛型实例化和属性赋值。内容涵盖泛型的基本概念及其在实际编程中的应用。
摘要由CSDN通过智能技术生成

今天突然看视频,涉及到泛型类;做了下使用总结:
<1>泛型类定义:
Class A{}

ClassAWhere T://参数约束,Where表示对类变量的约束。

变异的有以下几种:

  where T: struct                          // T必须是一个结构类型
  									//类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。
  where T: class                           // T必须是一个类(class)类型,不是结构(structure)类型
  								    //类型参数必须是引用类型,包括任何类、接口、委托或数组类型。
  where T: new()                           // T必须要有一个无参构造函数
  			//类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必须最后指定。
  where T: NameOfBaseClass                 // T必须继承名为基类名称
  			//类型参数必须是指定的基类或派生自指定的基类。
  where T: NameOfInterface                // T必须实现名为NameOfInterface的接口
  			//类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的
  Where T:U  //为 T 提供的类型参数必须是为 U 提供的参数或派生自为 U 提供的参数。这称为裸类型约束.

<2>泛型方法  Void B <T> ()
ex:Public Void Method<T>(T t) Where X:Ibase();   //在泛型中定义
<3>泛型委托 public delegate void CommandDelegate(T t);   //在泛型类中定义
   还包括 Action Fun的委托使用
<4>在属性中的应用 
//利用反射给泛型实例化和给泛型属性赋值
  System.Type t = typeof(T);
  Assembly ass=Assembly.GetAssembly(t);//获取泛型的程序集
  PropertyInfo[] pInfo = t.GetProperties();//获取到泛型所有属性的集合
  PropertyInfo pi;
  if(pInfo[0].PropertyType.Equals(typeof(string)))
 {
	string s1=pInfo.Name;
	pi.SetValue();//给泛型的属性赋值
 }

//以上一次小总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值