首页 > 编程语言 >C#泛型

C#泛型

时间:2023-05-11 21:01:40浏览次数:26  
标签:FilePath C# List GetList list 泛型 path model

定义:通过参数化类型来实现在同一份代码上操作多种数据类型的技术。利用“参数化类型”将类型抽象化,从而实现灵活的复用。

优点

1、提高了代码的复用性

2、提高了性能,指定类型,解决了类型的转换,避免了拆箱与装箱

3、比较安全

格式:声明一个泛型的方法,方法名后面需要一个<T>,其中字母T不是固定的,可以使用其他字母。

T相当于占了一个位置,又相当于是一个代表了一个数据类型的参数占位符

示例代码:

public override void ChildLoadData(string path)
{
List<Model_CustomerInfo> list = GetList(model, path);
foreach (Model_CustomerInfo model in list)
{
this.DataList.Add(model);
}
}

 

public override void ChildLoadData(string path)
{
List<Model_CustomerPerson> list = GetList(model, path);
foreach (Model_CustomerPerson model in list)
{
this.DataList.Add(model);
}
}

 

public static List<T> GetList<T>(T child, string FilePath)
{
List<T> list = new List<T>();
if (!File.Exists(FilePath))
{
return list;
}
XmlSerializer reader = new XmlSerializer(typeof(List<T>));
System.IO.StreamReader file = new System.IO.StreamReader(FilePath);
try
{
list = (List<T>)reader.Deserialize(file);
}
catch (Exception ex)
{
SystemInfoManager.SaveMessageErr("【" + FilePath + "】提取数据异常:" + ex.Message);
}
finally
{
file.Close();
}
return list;
}

 

标签:FilePath,C#,List,GetList,list,泛型,path,model
From: https://www.cnblogs.com/KevinSteven/p/17392217.html

相关文章

  • 使用Open3D进行PCD拟合平面的Python代码示例
    使用Open3D进行PCD拟合平面的Python代码示例 importopen3daso3dimportnumpyasnp#读取点云数据pcd=o3d.io.read_point_cloud("2023042501.pcd")#创建PCD图pcd_graph=o3d.geometry.PointCloudGraph(pcd)#选择要拟合的平面plane_cent......
  • Python协程asyncio
    在Python使用multiprocessing进行多线程和多进程操作 这篇文章中介绍了使用多线程的方式对一些I/O操作(文件读写、网络请求,这些操作不用等待其结束,在此期间可以做其他事情)进行加速。而本篇文章介绍的协程可以理解成“微线程”,不开辟其他线程,只在一个线程中执行,并且执行函数时......
  • Linux cpuidle framework(1)_概述和软件架构
    1.前言在计算机系统中,CPU的功能是执行程序,总结起来就是我们在教科书上学到的:取指、译码、执行。那么问题来了,如果没有程序要执行,CPU要怎么办?也许您会说,停掉就是了啊。确实,是要停掉,但何时停、怎么停,却要仔细斟酌,因为实际的软硬件环境是非常复杂的。我们回到Linuxkernel上,Linux......
  • agc029c 题解
    首先随便想个暴力,对于\(a_i>a_{i-1}\),我们直接往字符串的末尾加上一些最小的字符。对于\(a_i\lea_{i-1}\),我们保留前缀之后随便加一个位置的\(1\)。发现这个随便的位置不是很好找,于是想到用二分转枚举为判断。二分最大的字符(可以转化为数字)\(x\),每次我们只往最后一......
  • 21st UESTC Programming Contest - Preliminary except BCGIKMNPR
    21stUESTCProgrammingContest-PreliminaryexceptBCGIKMNPR OK,那么长的except那我到底写了什么呢(悲,太菜啦) A.能量采集dp+组合数的应用用dp[i][j][p]表示在(i,j)这个点以连续个p结尾的路径数1.首先对于每一个A到达这个格子的方案数是{n-i+m-j\choosen-i}......
  • getPhysicalNumberOfCells读取excel表格数据,清除空行后代码仍然识别空行,(已解决)
     表格只有几十行数据,但是getPhysicalNumberOfCells读取时还有800多行,原因在于之前把表格数据拓展到了800行,清除数据时,表格的样式为更改,可以尝试使用格式刷复制空行格式刷到错误空行上但是我试了没有用,反而还多了几十行,然后尝试用代码判断空行,只有格式没有数据的空行全部删除,......
  • Crackme逆向分析365例-001
    【Crackme逆向分析365例-001】  表哥是神,误落凡尘说明:本篇练习是表哥逆向分析365系列的第1例,所使用的CrackMe本体来自于网站:https://crackmes.one/,您可在此网站通过作者名或本体名查询下载,也可从本贴中提供的网盘地址下载,其CrackMe本体信息如下所示:本体名称:[EASY]CrackMe......
  • 【2023 · CANN训练营第一季】TIK C++算子开发入门笔记​
    【2023·CANN训练营第一季】TIKC++算子开发入门笔记TIKC++介绍TIKC++是一种使用C/C++作为前端语言的算子开发工具,通过四层接口抽象、并行编程范式、孪生调试等技术,极大提高算子开发效率,助力AI开发者低成本完成算子开发和模型调优部署使用TIKC++开发自定义算子的优势:•C/C++原......
  • Codeforces Round 244 (Div. 2) C. Checkposts(tarjan)
    题目链接思路考虑到如果一些点两两都能互相到达,那么这些点中,只要有一个点是安全的,就可以顾及到其他所有点,而这些点就是强连通分量(SCC)。思路很简单,就是每一个强连通分量中的最小值相加得到第一问的解,而第二问就是求每一个强连通分量有几个最小值,相乘得到答案。代码#include<i......
  • [USACO1.3]Ski Course Design
    #[USACO1.3]SkiCourseDesign题目描述农民约翰的农场里有\(n\)座山峰,每座山都有一个在\(0\)到\(100\)之间的整数的海拔高度。在冬天,因为山上有丰富的积雪,约翰经常开办滑雪训练营。不幸的是,约翰刚刚得知税法在滑雪训练营方面有新变化,明年开始实施。在仔细阅读法律后,他......