文章速览
- 泛型
- 泛型概述
- 定义
- 优点
- 实例
- 加载数据
- 保存数据
一个赞,专属于你的足迹!
泛型
泛型概述
泛型(Generics)是 C# 中一种重要的编程特性,它允许程序员编写灵活且类型安全的代码。通过使用泛型,可以创建类、接口、方法等,使其在使用时能够处理不同类型的参数,从而实现代码的复用和更高的类型安全。
定义
泛型类型参数:在定义泛型类、接口或方法时,使用一个占位符(称为类型参数)来表示将要使用的具体类型。例如,在泛型类 List 中,T 就是一个类型参数。
泛型类型实参:在使用泛型类、接口或方法时,指定实际的类型来代替类型参数。例如,List 中的 int 就是类型实参。
优点
类型安全:在编译时期就能检查类型错误,避免运行时期出现类型相关的错误。
代码复用:编写一组通用的代码逻辑,适用于多种不同的数据类型,避免为每种类型重复编写相似的代码。
性能提升:在处理值类型时,避免了装箱(boxing)和拆箱(unboxing)操作,提高了程序的执行效率。
灵活性:可以根据需要随时指定不同的类型参数,使代码更加灵活。
实例
加载数据
/// <summary>/// 加载数据/// </summary>/// <returns></returns>public T LoadData<T> (string fileName)where T : class{T ret = null;try{string filePath = Path.Combine(GetDVDAppConfigPath(), fileName);// 如果当前文件不存在,则创建一个默认的if (!File.Exists(filePath)){return null;}var file = File.ReadAllText(filePath);ret = JsonConvert.DeserializeObject<T>(file);}catch (Exception ex){//此处需要根据实际需求进行修改throw new Exception($"加载数据失败,{ex.Message}");}return ret;}
保存数据
/// <summary>/// 保存数据/// </summary>/// <typeparam name="T"></typeparam>/// <param name="data"></param>/// <param name="fileName"></param>public void SaveData<T>(T data, string fileName){string filePath = Path.Combine(GetDVDAppConfigPath(), fileName);File.WriteAllText(filePath, JsonConvert.SerializeObject(data, Formatting.Indented));}