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

embedded/2025/1/17 0:18:17/

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

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

《泛型集合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.ppmy.cn/embedded/154509.html

相关文章

初步认识 Neo4j 图数据库

Neo4j 是一种高性能的图数据库管理系统&#xff0c;基于图论设计&#xff0c;能够高效地存储和查询复杂的关系数据。以下是关于 Neo4j 的详细介绍&#xff1a; 核心特性 数据模型&#xff1a; Neo4j 使用图数据模型&#xff0c;将数据以节点&#xff08;Node&#xff09;、关系…

mysql,PostgreSQL,Oracle数据库sql的细微差异(2) [whith as; group by; 日期引用]

sql示例(MySQL) WITHtemp1 AS (SELECT name AS resultsFROM Users uJOIN MovieRating m ON u.user_id m.user_idGROUP BY m.user_idORDER BY COUNT(*) DESC,left(name,1)LIMIT 1),temp2 AS (SELECT title AS resultsFROM Movies mJOIN MovieRating r ON m.movie_id r.movie_…

uniapp火车票样式

<template><view class"train-ticket"><view class"header"><view class"header-left"><text class"logo">铁路</text><text class"ticket-type">电子客票</text></vie…

React中的key有什么作用?

在 React 中&#xff0c;key 是用来标识组件或元素在列表中的唯一性&#xff0c;它的作用非常重要&#xff0c;尤其是在动态渲染和更新组件时。key 可以帮助 React 高效地更新和渲染组件&#xff0c;避免不必要的重新渲染&#xff0c;确保 UI 的一致性。 key 的作用&#xff1…

大疆上云API基于源码部署

文章目录 大疆上云API基于源码部署注意事项1、学习官网2、环境准备注意事项3、注册成为DJI开发者4、下载前后端运行所需要的包/依赖前端依赖下载后端所需要的Maven依赖包 用到的软件可以在这里下载5、MySQL数据库安装安装MySQL启动MySQL服务在IDEA中配置MySQL的连接信息 6、Red…

数据结构9——二叉搜索树

&#x1f947;1.二叉搜索树的概念 二叉搜索树(Binary Search Tree,BST)又称二叉排序树或二叉查找树&#xff0c;其要么是一棵空树&#xff0c;要么具有以下性质&#xff1a; ①&#xff1a;左子树上所有节点的值都小于根节点&#xff1b; ②&#xff1a;右子树上所有节点的值都…

【Linux 之一 】Linux常用命令汇总

Linux常用命令 ./catcd 命令chmodclearcphistoryhtoplnmkdirmvpwdrmtailunamewcwhoami 我从2021年4月份开始才开始真正意义上接触Linux&#xff0c;最初学习时是一脸蒙圈&#xff0c;啥也不会&#xff0c;啥也不懂&#xff0c;做了很多乱七八糟&#xff0c;没有条理的笔记。不知…

计算机网络八股文学习笔记

总结来自于javaguide,本文章仅供个人学习复习 javaguide计算机网络八股 文章目录 计算机网络基础网络分层模型OSI七层模型TCP/IP四层模型 HTTP从输入URL到页面展示到底发生了什么?(非常重要)HTTP状态码HTTP Header中常见的字段有哪些?HTTP和HTTPS有什么区别?(重要)HTTP/1.0和…