泛型

  因为我们在编程中想先不定义数据类型,只想先写逻辑,就可以使用Object类型,

  这样我们的逻辑就适用于所有类型,但是,在运行中,Object类型的变量会需要

  转换到对应类型,浪费资源,所有出现泛型,来代替object类型的方案。

  

  使用泛型,可以让我们延迟定义数据类型,来编写程序

  泛型是一种将逻辑应用到不同数据类型上的机制,可以通过类型替代符

  来暂时替代参数的数据类型,这样只需要在编译的时候,编译器会自动

  将该替代符编译成对应数据类型来处理

  泛型方法:

    访问修饰符 返回类型 方法名<T,U>(T 参数,U 参数){

    }

    我们可以在方法名后使用<类型替代符>来定义一个泛型方法

    方法定义好后,在调用泛型方法时,应该在<>括号内填上对应的类型

    使用范围:当你的方法适用于所有数据类型的时候,可以使用泛型类型来代替Object类型,以节省资源

  泛型类:

    访问修饰符  class 类名<T>{

      T 成员;

    }

    类型替代符的作用:

      可以让我们先不定义数据类型,只管逻辑,在调用此方法或者此类对象时,才在<>括号里填上对应类型

      只有我们这段逻辑或者说这个类结构就可以适用于所有数据类型而且要比object类型节省资源

  

  泛型集合:

    在System.Collections.Generic 下的泛型数据结构类

    比System.Collections下的Object类型的数据结构类要更安全,性能更好

  泛型列表:

    List <数据类型>  列表名  = new List<数据类型>(可填写初始长度)  

    属性:

      Count :代表这个列表实际包含多少个元素

      Capacity:代表这个列表可以包含多少个元素

    方法:

      Add :在列表末尾添加一个元素

      Remove:删除指定的元素

      RemoveAt:删除下标号指定的元素

      Contains:检测是否包含这个元素

      IndexOf:从头开始查找第一个匹配项的下标号,没找到返回-1

      LastIndexOf:从尾开始查找第一个匹配项的下标号,没找到返回-1

      Insert:在指定Index的位置,插入这个元素

      Reverse:翻转当前列表的排列顺序

      Sort:排序

      查/改:索引器[下标号]

  IComparable <T> 接口:

     可以实现Sort对复杂数据类型的排序

      让你的类实现ComparaTo<T other>方法

    会返回一个int值

    其含义:  大于零:对象大于other参数;

         小于零:对象小于other参数;

         等于零:对象等于other参数;

c# 泛型和IComparable<T>接口的更多相关文章

  1. 机房重构——泛型和“DataTable”

    前言 我们都知道在机房重构的时候,大多数都在用七层进行重构,每一层都依赖实体.所以不管怎么调用,返回的应该是实体参数,这样才符合大多数的逻辑,这样我们试想一下,如果我们要求在U层返回多个实体值,怎么办 ...

  2. Java泛型学习笔记--Java泛型和C#泛型比较学习(一)

    总结Java的泛型前,先简单的介绍下C#的泛型,通过对比,比较学习Java泛型的目的和设计意图.C#泛型是C#语言2.0和通用语言运行时(CLR)同时支持的一个特性(这一点是导致C#泛型和Java泛型 ...

  3. 泛型和 Any 类型

    泛型和 Any 类型 这两个类型看起来很相似,但是一定要小心两者的区别.他们区别在于 Any 类型会避开类型的检查,所以尽量少用最好不用.泛型一方面很灵活一方面也很安全,下面举个例子感受下两者的区别: ...

  4. java 泛型和object比较

    引言 我们使用object和泛型做形参,都是为了让这个方法能接收更多类型的对象,让程序变得更健壮,代码复用率更高.当我们回看自己写的代码时会发现,好像使用泛型的地方使用object也可以,使用obje ...

  5. C#的泛型和Java的伪泛型

    C#的泛型和java的伪泛型,talk is cheap,show me the code   C#泛型 下面结果,C#里面会输出false,如果这个还不能真正的说明C#的泛型是真的泛型,那就看下面这 ...

  6. C#当中的泛型和java中的对比

    1.C#中的泛型 先写一个Demo: namespace generic {         public class Program         {                 static ...

  7. 基础篇:深入解析JAVA泛型和Type类型体系

    目录 1 JAVA的Type类型体系 2 泛型的概念 3 泛型类和泛型方法的示例 4 类型擦除 5 参数化类型ParameterizedType 6 泛型的继承 7 泛型变量TypeVariable ...

  8. java中的泛型和sql中的索引

    sql中的索引 索引:好处查询的速度快,被删除,修改,不会对表产生影响,作用是加速查询: 一种典型的数据库对象 作用:提交数据的查询效率,尤其对一些数据量很大的表 索引是用来为表服务的 索引是orac ...

  9. 1.什么是泛型和C#中泛型在Class上的实现

    阅读目录 一:什么是泛型? 二:C#中泛型在Class上的实现   一:什么是泛型? 我们在编程的时候需要一个数据类型,但是在刚开始的时候还不确定这个数据类型是怎么样的,或者说对于不同的多个数据类型有 ...

随机推荐

  1. python类属性和类方法(类的结构、实例属性、静态方法)

    类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...

  2. nginx——Nginx 处理事件模型

    Nginx 的连接处理机制在不同的操作系统会采用不同的 I/O 模型,要根据不同的系统选择不同的事件处理模型,可供选择的事件处理模型有:kqueue .rtsig .epoll ./dev/poll ...

  3. 周强 201771010141《面向对象程序设计(java)》第四周学习总结

    实验目的与要求 (1) 理解用户自定义类的定义: (2) 掌握对象的声明: (3) 学会使用构造函数初始化对象: (4) 使用类属性与方法的使用掌握使用: (5) 掌握package和import语句 ...

  4. cmake使用方法详解

    cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性 ...

  5. C#读写三菱PLC和西门子PLC数据 使用TCP/IP 协议

    本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...

  6. JDBC ---获取数据字段 -- 转成map

    getConn = JdbcDataBaseUtil.getConnection(user,pwd,serverUrl,mysqDriver); //建立一个结果集,用来保存查询出来的结果 Resul ...

  7. 着色器语言 GLSL (opengl-shader-language)入门大全

    基本类型: 类型 说明 void 空类型,即不返回任何值 bool 布尔类型 true,false int 带符号的整数 signed integer float 带符号的浮点数 floating s ...

  8. Spring @Resource,@Autowired,@Qualifier的注解注入和区别

    spring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖.在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入 ...

  9. mongo 索引,速度

    (如有打扰,请忽略)阿里云ECS大羊群,2U4G低至1.4折,限实名新用户,需要的点吧https://promotion.aliyun.com/ntms/act/vm/aliyun-group/tea ...

  10. Tomcat报异常:Too many open files 的解决之路

    http://www.linuxeye.com/Linux/2781.html Tomcat报 Jul 21, 2015 8:45:23 AM org.apache.tomcat.util.net.J ...