• C#高级开发之泛型一


    1、泛型

         C#中的泛型引入了延迟申明(延迟申明思想),把参数类型的申明推迟到调用,在编译(第一次编译)时先生成中间代码IL公共中间语言(CIL),通用类型T只是一个占位符。在实例化类时,根据用户指定的数据类型代替T并由即时编译器(JIT)生成本地托管代码(.net框架编译器编写的代码,需要在CLR的环境下运行),这个本地托管代码中已经使用了实际的数据类型,等同于用实际类型写的类,然后在CLR(公共语言运行库)中再次有JIT即时编译器转换机器代码(二进制)。泛型不是语法堂,而是由.net2.0框架升级而来需要编译器支持+JIT支持等支持。

    占位符(`)2为参数个数
     一 泛型方法、泛型类、泛型接口、泛型委托
    1、泛型方法: 泛型方法解决用一个方法,满足不同参数类型;做相同事,没有写死参数类型,调用的时候才指定类型,泛型方法声明示例,以下是一个参数的方法声明
    public static void Show<T,S>(T tParameter)
            {
                Console.WriteLine("This is {0},parameter={1},type={2}",
                    typeof(GenericMethod), tParameter.GetType().Name, tParameter.ToString());
             }

    2、泛型类:一个类来满足不同的具体类型,做相同事。泛型类声明示例,

    public class GenericClass<T>
        {
            public T _T;//泛型类中声明一个类型
        }

    3、泛型接口:一个接口来满足不同的具体类型做相同事,泛型接口声明示例,

     public interface IGenericInterface<T> //where T : People
        {
            T GetT(T t);//泛型类型的返回值(接口中的泛型方法)
        } 

    4、泛型委托,一个委托满足不同的具体类型做相同事,泛型委托声明示例,

    public delegate void SayHi<T>(T t);//泛型委托

    二,泛型约束 泛型基类约束(不能是sealed),泛型接口约束,泛型引用类型约束,值类型约束,无参数构造约束。泛型约束权力与义务:可以使用基类的一切属性方法(权利) 强制保证T一定是People或者People的子类(义务)示例如下

     1 public static T Get<T>(T t)
     2             where T:People//基类约束
     3             //where T : ISports//接口约束
     4             //where T : class//引用类型约束
     5             //where T : struct//值类型约束
     6             //where T : new()//无参数构造函数约束
     7         {
     8             t.Hi();
     9             //t.Pingpang();
    10             //T tNew = null;
    11             //T tNew = default(T);//会根据T的不同  赋予默认值
    12             return t;
    13         }
    View Code
  • 相关阅读:
    sql server 2005中模仿merge的使用方法
    c#中怎么控制session失效时间
    MasterPage,Page 2者之间事件的执行顺序
    ToolStripComboBox的DataSource和DataTable
    C#综合揭秘——细说多线程(上)(转载)
    SQL Server 2008 MERGE
    SQL output语句的用法
    SQL中使用update inner join和delete inner join
    C#综合揭秘——细说事务(转载)
    SQLMETAL :Linq对象生成
  • 原文地址:https://www.cnblogs.com/youzhangcai1/p/10300342.html
Copyright © 2020-2023  润新知