C# 泛型使用案例_C# 泛型使用整理

ops/2024/10/21 7:44:07/

一、系统自带常用的泛型

1.字典,集合

//字典
Dictionary<string, int> dic = new Dictionary<string, int>();
//泛型集合
List<int> list = new List<int>();

2.泛型委托,输入参数,输出参数

//泛型 委托---输出参数
Func<int> show = () =>
{int num = 0;for (int i = 0; i < 10; i++){Console.WriteLine(i);num += i;}return num;
};
Console.WriteLine(show()); //执行方法返回结果//泛型 委托--输入参数
Action<int> go = (num) =>
{for (int i = 0; i < num; i++){Console.WriteLine(num);}
};
go(10);//输入参数执行发放,没有返回结果

3.泛型任务,多线程,异步编程

//泛型任务---多线程异步
Task<string> task = Task.Run(() =>
{return "测试内容";
});
Console.WriteLine(task.Result);

二、泛型方法,使用案例

1. 任意类型数据交换

/// <summary>
/// 交换任意两个变量的值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="arg0"></param>
/// <param name="arg1"></param>
public static void Swap<T>(ref T arg0,ref T arg1)
{T temp = arg0;arg0 = arg1;arg1 = temp;
}
int num1 = 1;
int num2 = 2;
Swap<int>(ref num1, ref num2);
Console.WriteLine(num1);//打印:2
Console.WriteLine(num2);//打印:1string str1 = "张三";
string str2 = "lisi";
Swap(ref str1,ref  str2);
Console.WriteLine(str1);//打印:lisi
Console.WriteLine(str2);//打印:张三

2. 自定义规则和类型,求和处理

//自定义泛型方法
//自定义求和
//int 类型 相加,decimal类型相加 只计算整数相加,字符串类型 转换成整数相加; 学生类型 年龄相加
//返回整数,字符串
public static T Sum<T>(T arg0, T arg1)
{if (typeof(T) == typeof(Int32)){dynamic num1 = arg0;dynamic num2 = arg1;T arg3 = num1 + num2;return arg3;}else if (typeof(T) == typeof(double)){dynamic num1 = Convert.ToInt32(arg0);dynamic num2 = Convert.ToInt32(arg1);T arg3 = num1 + num2;return arg3;}else if (typeof(T) == typeof(string)){dynamic num1 = Convert.ToInt32(arg0);dynamic num2 = Convert.ToInt32(arg1);dynamic arg3 = (num1 + num2).ToString();return arg3;}else if (typeof(T) == typeof(Student)){Student num1 = arg0 as Student;Student num2 = arg1 as Student;dynamic arg3 = new Student();arg3.Age = num1.Age + num2.Age;return arg3;}return default(T);
}

三、泛型类,自定义泛型类

    //自定义泛型类//定义泛型类,存储列表, 共同行为1 对象+对象 返回数组集合; 共同行为2 传入对象集合,执行打印public class MyStudent<T>{/// <summary>/// 对象组合/// </summary>/// <param name="arg0"></param>/// <param name="arg1"></param>/// <returns></returns>public List<T> Add(T arg0, T arg1){List<T> list = new List<T>();list.Add(arg0);list.Add(arg1);return list;}/// <summary>/// 遍历打印/// </summary>/// <param name="list"></param>public void Foreach(List<T> list){foreach (var item in list){Console.WriteLine(item);}}}

使用案例:

MyStudent<int> list1 = new MyStudent<int>();
List<int> result1 = list1.Add(1, 2);
list1.Foreach(result1);Student stu1 = new Student();
stu1.Age = 10;
Student stu2 = new Student();
stu2.Age = 20;
MyStudent<Student> list2 = new MyStudent<Student>();
List<Student> result2 = list2.Add(stu1,stu2);
list2.Foreach(result2);

更多:


http://www.ppmy.cn/ops/120052.html

相关文章

【MySQL 06】表的增删查改

目录 1.insert 增添数据 1.1单行数据 全列插入 1.2多行数据 指定列插入 1.3插入否则更新 1.4.插入否则替换 2.select查找 2.1 全列查找 2.2指定列查找 2.3查询字段为表达式 2.4为查询结果指定别名 2.5 结果去重 2.6 where条件查询 2.7结果排序 2.8.筛选分页结果…

Java Web开发简介

Java Web开发涉及到构建基于Java技术的网页应用程序&#xff0c;通常需要以下技能和软件&#xff1a; 技能&#xff1a; Java基础知识&#xff1a;熟悉Java语言的基础&#xff0c;包括数据类型、控制结构、异常处理、集合框架等。 Java EE&#xff08;Jakarta EE&#xff09;…

2024年7月大众点评宁波美食店铺基础信息

在做一些城市分析、学术研究分析、商业选址、商业布局分析等数据分析挖掘时&#xff0c;大众点评的数据参考价值非常大&#xff0c;截至2024年7月&#xff0c;大众点评美食店铺剔除了暂停营业、停止营业后的最新数据情况分析如下。 宁波餐饮美食店铺约7.3万家&#xff0c;有均…

SOCKS5代理和HTTP代理哪个快?深度解析两者的速度差异

在现代互联网环境中&#xff0c;使用代理IP已经成为了许多人日常生活和工作的必备工具。无论是为了保护隐私&#xff0c;还是为了访问某些特定资源&#xff0c;代理IP都扮演着重要的角色。今天&#xff0c;我们就来聊聊SOCKS5代理和HTTP代理&#xff0c;看看这两者到底哪个更快…

c语言实例

大家好&#xff0c;欢迎来到无限大的频道 今天给大家带来的是c语言 题目描述 创建一个双链表&#xff0c;并将链表中的数据输出到控制台&#xff0c;输入要查找的数据&#xff0c;将查找到的数据删除&#xff0c;并且显示删除后的链表 下面是一个用C语言实现的双链表&#…

Java ERP管理系统源码解析:微服务架构实践Spring Cloud Alibaba与Spring Boot

在当今数字化浪潮的推动下&#xff0c;企业对于高效、稳定且易于扩展的管理系统需求日益增长。为了满足这一需求&#xff0c;我们精心打造了一款基于Java技术的鸿鹄ERP&#xff08;Enterprise Resource Planning&#xff09;管理系统。该系统充分利用了Spring Cloud Alibaba、S…

微信小程序——婚礼邀请函

目的 1.掌握微信小程序的开发技术&#xff0c;包括页面布局、交互设计、数据存储等。 2.学会运用微信小程序的各种组件和 API&#xff0c;实现个性化的婚礼邀请函功能。 3.通过制作婚礼邀请函小程序&#xff0c;提升创意设计和用户体验优化的能力。 4.了解如何在小程序中整…

【Router】路由功能之MAC地址过滤(MAC Filter)功能介绍及实现

MAC地址过滤(MAC Filter) MAC 地址过滤是一种网络安全技术,通过在网络设备(如路由器)上设置规则,允许或阻止特定 MAC 地址的设备连接到网络。其主要作用是增强网络的安全性,防止未经授权的设备接入网络。 MAC Filter工作原理 MAC 地址过滤的工作原理是根据设备…