c#泛型的实例化
来源:互联网 发布:淘宝天猫网优惠券 编辑:程序博客网 时间:2024/04/28 08:39
c#泛型的实例化
框架中应用了较多的泛型。下面来讲讲对泛型的实例化,以代码为例,如:
public class A
{
}
public class B<T>
{
public static T Get()
{
//在这一块如何实例化T这个对象呢?如果用default(T)这个是不行的。只能做一个null值处理。
}
}
以上的方法就是遇到最麻烦的问题。一直以来都以为default(T)就可以实例化T这个对像,其实不然,这个只能起一个null值的作用。如果要解决以上的问题现在有两种方法:
一、在使用泛型的类后面加入一个 where T : new(),代码如下:
public class A
{
}
public class B<T> where T : new()
{
public static T Get()
{
T result = new T();//这样就可以实例化。也可以编译通过。
...........
}
}
对于new()约束,大家可能有一个误解,以为使用了new约束之后,在创建对象时与非泛型的版本是一致的。事实上,使用new关键字的作用只是让编译器在泛型实例化之处,检查所绑定的泛型参数是否具有无参构造函数,也可以实例化出来一个对象。
二、可以使用System.Activator.CreateInstance<T>()创建泛型实例对像。代码如下:
public class A
{
}
public class B<T>
{
public static T Get()
{
T s = System.Activator.CreateInstance<T>();
.....
}
}
上面所讲的两种方式都是以用反射机制来获取泛型对象的实例的。
0 0
- c#泛型的实例化
- C#之泛型实例化对象的理解
- C#泛型实例
- C#泛型接口实例
- C# 2.0 中关于泛型的用法实例
- C# 2.0 中关于泛型的用法实例
- C# 2.0 中关于泛型的用法实例
- C# 2.0 中关于泛型的用法实例 收藏
- 关于C#的接口实例化
- C#实例化类的详细介绍
- C#实例化类的详细介绍
- C#接口实例化的作用
- C#实例化类的详细介绍
- C#对象的声明与实例化
- C# 实例化的执行顺序
- C#实例化一个对象的方法
- C# 2.0泛型编程基础实例
- C# 泛型集合实例应用浅析
- Android中的Bitmap和Drawable
- swift Error Handling
- 分页
- Android混淆规则
- POJ 1258 Agri-Net (最小生成树)
- c#泛型的实例化
- 气动阀的性能检测
- ImageLoader
- 整合nagios+cacti+微信、飞信实现网络监控系统报警
- C#的类型转换(1)之隐式和显式转换
- 定位
- ajax使用技巧之初入门
- linux 高级原2
- meta标签相关知识