泛型,.net 2.0之后出现,基本只要代码中出现 ‘<>’ 尖括号就可以确定是泛型。

  在2.0之前大多是使用Object来代替,因为所有类都是Object的派生类,根据继承的原理Object可以代替所有派生类,相反他的派生类也可以代替他的基类

 class Program
{
static void Main(string[] args)
{
int paramInt = ;
string paramString = "字符串";
DateTime parmDateTime = DateTime.Now; Console.WriteLine("这是Object方法调用方法传递。");
ObjectMethod.ObjectGo(paramInt);
ObjectMethod.ObjectGo(paramString);
ObjectMethod.ObjectGo(parmDateTime); Console.ReadLine();
}
}
    public static class ObjectMethod
{
public static void ObjectGo(object param)
{
Console.WriteLine("这是Object方法接收到的参数:{0} ,参数类型:{1}",param,param.GetType());
}
}

上面这个例子,大家也能看到,当想使用一个方法来接多种类型的参数时使用了Object类型,这是一种很古老的写法了,而且在装箱拆箱上面也有问题,因为这个ObjectGo方法并不清楚他要接收什么类型的参数,可能是string可能是int,也可能是其他自定义类型,简单点说就是可能是值类型也有可能是引用类型,比如当我int类型的参数向方法中传递时,应为int类型为引用类型在栈中存储而Object是值类型在堆中存储所以当int类型向方法中传递时就会发生一次由栈向堆中内存的Copy也就是一次拆箱,但是当参数传递到方法中时发现参数类型为int引用类型,接着就又装箱。

在2.0之后泛型出来了,完全可以使用泛型来传递参数的类型,从而来避免这一次没有必要的装箱拆箱

   public static class GenericMethod
{
public static void GenericGo<T>(T param)
{
Console.WriteLine("这是泛型方法接收到的参数:{0} ,参数类型:{1}", param, param.GetType());
}
}
             GenericMethod.GenericGo<int>(paramInt);//<T>可以省略
GenericMethod.GenericGo(paramString);
GenericMethod.GenericGo(parmDateTime);

以下时两个方法分别的运行时间:

最新文章

  1. spin.js
  2. POJ3281Dining[最大流]
  3. CSS Table Gallery
  4. 关于UIView的方法animateWithDuration:animations:completion:的说明
  5. 视觉差双排listview效果
  6. 关于js unshift() 与pop() 功能
  7. c# 前端写代码的情况
  8. hdoj 1342 Lotto【dfs】
  9. Ubuntu上安装jdk,Jboss
  10. HashTable 及应用
  11. UIScrollView 滑动试图
  12. Chrome console(转)
  13. SQL拼接方法
  14. zencart_magiczoom
  15. 自己动手实现一个Android Studio插件
  16. LeetCode Javascript实现 100. Same Tree 171. Excel Sheet Column Number
  17. 跨界!Omi 发布多端统一框架 Omip 打通小程序与 Web 腾讯开源 2月28日
  18. 使用phpunit测试yaf项目操作步骤
  19. 分布式一致性算法2PC和3PC
  20. 表单中Readonly和Disabled的区别:readonly在get和post可传值到后端,disabled不可

热门文章

  1. 私有成员的设置和访问方式——setter和getter
  2. [ActionScript 3.0] File下载工具
  3. jvm字节码简介
  4. Python 魔法方法查询表 -- 总结篇
  5. 多线程:GCD
  6. 1.需要对txt存放的测试数据做去重处理,代码如下
  7. Windows Server2008如何打开添加IIS服务器
  8. C# ListView用法详解 很完整
  9. 05-树9 Huffman Codes (30 分)
  10. 计算几何误差修正cmp