当前位置: 首页 > article >正文

C#知识|泛型Generic概念与方法

哈喽,你好啊,我是雷工!

关于泛型在前面学习记录过

《泛型集合List相关方法》、《Dictionary泛型集合的使用总结》;

其中泛型集合 List<T>、Dictionary<k,v>所在的命名空间为:System.Collection.Generic;

01 非泛型集合

与泛型集合对应的是被淘汰了的非泛型集合:

非泛型ArryList,Hastable  所在命名空间:System.Collections;

①ArryList

非泛型集合ArryList里可以添加任意类型,虽然添加方便,但是对于数据本身来讲,非常不完全,会导致开发中很多时候不可控,另外还存在拆装箱问题。

② 啥是拆装箱

装箱:将值类型的元素,放到集合中会被转换成object类型,这个过程叫做装箱。

拆箱:将一个集合中的元素取出来,但是这个元素本质是值类型,所以,我们必须强制类型转换。

拆装箱的缺点:当存储大量数据时,拆装箱会影响程序性能。

由于不安全和影响性能两个问题导致非泛型集合被淘汰。

02 泛型集合

①泛型集合出现的原因:

开发中不希望在一个容器中添加不同类型的数据,但是又希望这个容器能够根据我们的需求,随时决定能够添加何种数据。

②泛型概念

泛型是一种程序特性,当定义的时候并不对类型做规定,但是当使用的时候,必须明确规定类型,且不能改变。

03、泛型出现的场合

①泛型集合;

②泛型方法;

③泛型类;

④泛型委托;

04 泛型方法

泛型方法就是把一个方法的返回值类型,方法参数定义成泛型类型。

常见的泛型类型表示方法:T、T1、T2、……

05 default

泛型中default关键字的使用,主要用于直接的赋值;

示例:

public class MyGenericClass<T1,T2>

{

    private T1 data1;

    private T2 data2;

    

    public MyGenericClass()

    {

        写法1:

        data1=new T1();    【写法错误】

        原因:

        因为T1类型不能确定是引用类型,所以不能new;

        写法2:

        data1=null;【写法错误】

        原因:

        因为很多时候值类型不可以为null

        写法3:

        data1=default(T1);【写法正确】

        data2=default(T2);

    }

}


http://www.kler.cn/a/569410.html

相关文章:

  • 【Leetcode 每日一题】132. 分割回文串 II
  • 重新审视 ChatGPT 和 Elasticsearch:第 2 部分 - UI 保持不变
  • c# winfrom增加进度条
  • WP 高级摘要插件:助力 WordPress 文章摘要精准自定义显示
  • Python Cookbook-2.13 使用C++的类iostream语法
  • 解决 Dell PowerEdge T630 增加第三方 PCIe 设备后制冷系统异常
  • 【深度学习】Hopfield网络:模拟联想记忆
  • JAVA调用Deepseek的api,完成基本对话
  • HTML AI 编程助手
  • Spring系列学习之Spring Messaging消息支持
  • 基于FD-MIMO技术的雷达通信一体化系统波形设计matlab模拟与仿真
  • Android应用app实现AI电话机器人接打电话
  • 如何在netlify一键部署静态网站
  • 【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器 (6讲) - 2.3 HTTP请求流程:为什么很多站点第二次打开速度会很快?
  • Python Tornado 框架面试题及参考答案
  • 计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计
  • 视觉图像坐标转换
  • P8680 [蓝桥杯 2019 省 B] 特别数的和
  • 测试用例详解
  • 基于springboot的文旅网站系统的设计与实现