博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#泛型(一)泛型方法
阅读量:6568 次
发布时间:2019-06-24

本文共 4559 字,大约阅读时间需要 15 分钟。

namespace GenericsTest{    class Program    {        // https://www.cnblogs.com/dotnet261010/p/9034594.html        static void Main(string[] args)        {            int iValue = 123;            string sValue = "456";            DateTime dtValue = DateTime.Now;            Console.WriteLine("----------------------------CommonMethod-------------------------------");            CommonMethod.showInt(iValue);            CommonMethod.showString(sValue);            CommonMethod.showDateTime(dtValue);            Console.WriteLine("----------------------------Object-------------------------------");            // Object会出现装箱和拆箱,会损耗程序的性能            CommonMethod.showObject(iValue);            CommonMethod.showObject(sValue);            CommonMethod.showObject(dtValue);            Console.WriteLine("----------------------------泛型-------------------------------");            GenericMethod.show
(iValue); GenericMethod.show
(sValue); GenericMethod.show
(dtValue); Console.WriteLine("----------------------------三种方法执行同样的操作,比较用时长短-------------------------------"); // 从结果中可以看出:泛型方法的性能最高,其次是普通方法,object方法的性能最低。 MonitorMethod.Show(); Console.ReadKey(); } }}namespace GenericsTest{ public class CommonMethod { ///
/// 打印个int值 /// ///
public static void showInt(int iParameter) { Console.WriteLine("This is {0}, parameter = {1}, type = {2}.", typeof(CommonMethod).Name, iParameter.GetType().Name, iParameter); } ///
/// 打印个string值 /// ///
public static void showString(string sParameter) { Console.WriteLine("This is {0}, parameter = {1}, type = {2}.", typeof(CommonMethod).Name, sParameter.GetType().Name, sParameter); } //、打印个DateTime值 public static void showDateTime(DateTime dtParameter) { Console.WriteLine("This is {0}, parameter = {1}, type = {2}.", typeof(CommonMethod).Name, dtParameter.GetType().Name, dtParameter); } ///
/// 上面的三个例子进行优化 /// ///
public static void showObject(object oParameter) { Console.WriteLine("This is {0}, parameter = {1}, type = {2}.", typeof(CommonMethod).Name, oParameter.GetType().Name, oParameter); } }}namespace GenericsTest{ class GenericMethod { public static void show
(T tParameter) { Console.WriteLine("This is {0}, parameter = {1}, type = {2}.", typeof(GenericMethod).Name, tParameter.GetType().Name, tParameter.ToString()); } }} namespace GenericsTest{ class MonitorMethod { public static void Show() { int iValue = 12345; long commonSecond = 0; long objectSecond = 0; long genericSecond = 0; { Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < 100000000; i++) { ShowInt(iValue); } watch.Stop(); commonSecond = watch.ElapsedMilliseconds; } { Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < 100000000; i++) { ShowObject(iValue); } watch.Stop(); objectSecond = watch.ElapsedMilliseconds; } { Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < 100000000; i++) { Show
(iValue); } watch.Stop(); genericSecond = watch.ElapsedMilliseconds; } Console.WriteLine("commonSecond={0},objectSecond={1},genericSecond={2}." , commonSecond, objectSecond, genericSecond); } #region PrivateMethod private static void ShowInt(int iParameter) { //do nothing } private static void ShowObject(object oParameter) { //do nothing } private static void Show
(T tParameter) { //do nothing } #endregion }}

 

转载于:https://www.cnblogs.com/wsq-blog/p/10456919.html

你可能感兴趣的文章
推荐15款最佳的 jQuery 分步引导插件
查看>>
在asp.net mvc中使用PartialView返回部分HTML段
查看>>
Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
查看>>
android oncreate获取宽高度
查看>>
winform窗体MaximizeBox
查看>>
C#函数式编程之可选值
查看>>
4.cadence原理图,环境设置[原创]
查看>>
java HashMap中出现反复的key, 求解释
查看>>
90%的用户都不知道手机内部功能
查看>>
类和对象的使用之对象指针
查看>>
Android 动画深入解析
查看>>
关于 android 读取当前手机号码
查看>>
linux下git的安装和使用(转)
查看>>
C++第11周(春)项目4 - 类族的设计
查看>>
linux -- ubuntu桌面版安装xampp
查看>>
Linux下串口编程入门
查看>>
Ewebeditor最新漏洞及漏洞大全
查看>>
Understanding the Bias-Variance Tradeoff
查看>>
(原创)speex与wav格式音频文件的互相转换
查看>>
php.ini
查看>>