当前位置:  编程技术>.net/c#/asp.net

C#泛型实例详解

    来源: 互联网  发布时间:2014-11-01

    本文导语:  本文以实例形式讲述了C#泛型的用法,有助于读者深入理解C#泛型的原理,具体分析如下: 首先需要明白什么时候使用泛型: 当针对不同的数据类型,采用相似的逻辑算法,为了避免重复,可以考虑使用泛型。 一、针对类的泛...

本文以实例形式讲述了C#泛型的用法,有助于读者深入理解C#泛型的原理,具体分析如下:

首先需要明白什么时候使用泛型:

当针对不同的数据类型,采用相似的逻辑算法,为了避免重复,可以考虑使用泛型。

一、针对类的泛型

针对不同类型的数组,写一个针对数组的"冒泡排序"。

1.思路

● 针对类的泛型,泛型打在类旁。
● 由于在"冒泡排序"中需要对元素进行比较,所以泛型要约束成实现IComparable接口。

  class Program
  {
    static void Main(string[] args)
    {
      SortHelper isorter = new SortHelper();
      int[] iarray = {8, 7, 1, 2, 12};
      isorter.BubbleSort(iarray);
      foreach (int item in iarray)
      {
        Console.Write(item+ ", ");
      }
      Console.ReadKey();
    }
  }
 
  public class SortHelper where T : IComparable
  {
    public void BubbleSort(T[] array) 
    {
      int length = array.Length;
      for (int i = 0; i = 1; j--)
        {
          if (array[j].CompareTo(array[j-1]) < 0)
          {
            T temp = array[j];
            array[j] = array[j - 1];
            array[j - 1] = temp;
          }
        }
      }
    }
  }
 

运行结果如下图所示:

2.关于泛型约束

where T : IComparable 把T约束为实现IComparable接口
where T : class
where T : struct
where T : IComparable, new() 约束泛型必须有构造函数

3.关于冒泡算法

● 之所以for (int i = 0; i


    
 
 

您可能感兴趣的文章:

  • .NET下 c#通过COM组件操作并导出Excel实例代码
  • C#静态变量与实例变量实例分析
  • C#中事件的继承实例分析
  • C#文件管理类Directory实例分析
  • C#托管堆对象实例包含内容分析
  • C#下实现创建和删除目录的实例代码
  • C#实现装箱与拆箱操作简单实例
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#清空添加的txt文件的实例代码
  • C#生成随机字符串的实例
  • C# 获取枚举值的简单实例
  • c#剪切板操作的简单实例
  • C#递归题目实例代码
  • C#调用CMD命令实例
  • C#解析JSON实例
  • C#实现随鼠标移动窗体实例
  • c#获取光标在屏幕中位置的简单实例
  • c#中switch case的用法实例解析
  • C#事件处理和委托event delegate实例简述
  • c# 应用事务的简单实例
  • C#实现让窗体永远在窗体最前面显示的实例
  • ThinkPHP之N方法实例详解
  • Python文件操作类操作实例详解
  • Java加载JDBC驱动程序实例详解
  • ThinkPHP3.1之D方法实例详解
  • Android对sdcard扩展卡文件操作实例详解
  • 基于c# 接口的实例详解
  • php实例分享之通过递归实现删除目录下的所有文件详解
  • php 获取完整url地址实例详解
  • android双缓冲技术实例详解
  • php事务处理实例详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • php开源软件 iis7站长之家
  • Bean的作用域及Spring 暴露 Bean实例的方法介绍
  • 请问:类的实例化是怎么一回事?如何进行实例化?
  • Python 3 Tkinter教程之事件Event绑定处理代码实例
  • 万般火急!关于java打印,已经得到printerJob实例,那么怎么通过它得到Pageable实例?
  • Python namedtuple(命名元组)使用实例
  • 类的方法和实例方法,类字段和实例字段有什么不同,在使用上?
  • boost库区间range基本原理及使用实例
  • 既然在定义实例变量的时候可以初始化实例变量的值,那还要构造函数干吗?谢谢!
  • php session_id()函数介绍及代码实例
  • 怎么样判断一个类是否已经被实例化,并关闭这个实例,而且保证系统不退出(详情见内)
  • java Servlet获取和设置cookie实例代码
  • 请问在一个servlet里取得一个用singleton模式实现的类实例,那么这个类实例的生命周期是怎样的?
  • Mysql Select查询执行流程介绍及实例
  • 实例变量和类变量
  • c++类库Boost::bimap(双向映射)介绍及使用实例
  • 又谁能告诉我实例因该怎么去理解它?????????/
  • OpenStack中compute介绍和compute实例需要注意的问题
  • Keepalived 能配两个虚拟ip吗,匹配两个数据库实例?
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 如何实例化一个FilenameFilter?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3