C# 泛型

C# 泛型详解

C# 泛型

泛型就是为了编写与类型无关的代码. 与C++中的泛型是一个概念.

在声明泛型方法/泛型类,可以给泛型加上一定的约束来满足我们特定的一些条件

比如:

using System;
using System.Web.Caching;

namespace Demo.CacheManager
{
   public class CacheHelper<T> where T:new()
   {
      
   }
}

where T : xxx 来限定泛型.

泛型限定条件:

  • T:结构(类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型)
  • T:类 (类型参数必须是引用类型,包括任何类、接口、委托或数组类型)
  • T:new() (类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时new() 约束必须最后指定)
  • T:<基类名> 类型参数必须是指定的基类或派生自指定的基类
  • T:<接口名称> 类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。

C# type类

C# type 类

Type类,是一个用来存储类型的特性和信息的类。
对于程序中的每一个类型,都会有他自己的类信息,而根据Type提供的书信和方法获得这个类型的一切信息,包括字段,属性,事件,参数,构造函数等

生成Typde对象

Type type = typeof(Test);
 
 Test test= new Test();
 Type type2 = Test.GetType();

获取该类型的信息

//类的名称    
string name = type.Name;           
//类的命名空间
string space = type.Namespace;
//类的程序集
Assembly assembly = type.Assembly;
//类的共有字段
FieldInfo[] fieldInfos = type.GetFields();
//类的属性
PropertyInfo[] propertyInfos = type.GetProperties();
//类的方法
MethodInfo[] methodInfos = type.GetMethods();

typeof 和GetType的区别

  1. C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型
  2. typeof(x)中的x,必须是具体的 类名、类型名称 等(int ,string,自定义类等等),不可以是变量名称;
  3. GetType()是基类System.Object的方法,因此 只有建立一个实例之后才能够被调用
  4. typeof是运算符,GetType是一个实例的方法;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值