• c# 泛型有什么作用?


    泛型通俗的理解 就是限制list集合里面的数据类型 比如List<int>
    就限制LIST里面必须是int,这样放入其他就有报错(保证了安全),然后从
    list里取元素,就不需要强制转化成int了

    还可以理解为 使用数据类型做为参数

    关于object类型:
    1.object类型可以来引用任何类型的实例;
    2.object类型可以存储任何类型的值;
    3.可以定义object类型的参数;
    4.可以把object作为返回类型。
    但是--这样做有很大的问题

    1.会因为程序员没有记住使用的类型而出错,造成类型不兼容;
    2.值类型和引用类型的互化即装箱拆箱使系统性能下降。

    C#2.0提出的泛型就是避免强制类型转换,减少装箱拆箱提高性能,减少错误。

    System.Collections.Generic命名空间提供许多集合类和接口的泛型版本。

    定义:
    public class GenericList<T>
    {
        public void Add(T input)//T制定成类型参数
        public T Add()//T制定成返回值
    }
    <T>的T是类型参数,起占位符的作用,编译时被真正类型取代

    使用泛型:
    GenericList<int> list1 = new GenericList<int>();
    GenericList<string> list2 = new GenericList<string>();
    GenericList<类名> list3 = new GenericList<类名>();
    GenericList<类名<int>> list4= new GenericList<类名<int>>();
    以list1为例编译器生成以下的方法:
        public void Add(int input)
        public int Add()

    有多个类型参数的泛型类:
    public class 类名<T,U>

    泛型约束:
    确保泛型类使用的参数是提供特定方法的类型。
    public class GenericList<T> where T : IEmployee
    假如IEmployee接口包含A方法,编译器会验证用于替换T的类型一定要实现IEmployee接口。

    泛型方法:允许采取定义泛型类时采用的方式

    //定义泛型方法
    static void Swap<T>(ref T lhs, ref T rhs)

    { T temp; temp = lhs; lhs = rhs; rhs = temp; }
    //使用泛型方法

    public static void TestSwap(){    int a=1,b=3;
    Swap<int>(ref a,ref b);


    string s1="Hello",s2="world";
    Swap<string>(ref s1,ref s2);}
    有泛型类,泛型接口,泛型方法,泛型委托
  • 相关阅读:
    狗 日 的 360
    Django搭建简单的站点
    ZOJ 3675 Trim the Nails(bfs)
    Qt移动应用开发(二):使用动画框架
    SPOJ QTREE2 lct
    [Phonegap+Sencha Touch] 移动开发77 Cordova Hot Code Push插件实现自己主动更新App的Web内容
    Bitmap工具类BitmapHelper
    Material-design icon生成插件
    闲聊ROOT权限——ROOT权限的前世今生
    Java深入浅出系列(四)——深入剖析动态代理--从静态代理到动态代理的演化
  • 原文地址:https://www.cnblogs.com/xiangziyanhuang/p/1955635.html
Copyright © 2020-2023  润新知