C#弃元参数的使用场景
发表于:2024-11-13 作者:千家信息网编辑
千家信息网最后更新 2024年11月13日,这篇文章主要介绍"C#弃元参数的使用场景",在日常操作中,相信很多人在C#弃元参数的使用场景问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C#弃元参数的使用场景"的疑惑
千家信息网最后更新 2024年11月13日C#弃元参数的使用场景
这篇文章主要介绍"C#弃元参数的使用场景",在日常操作中,相信很多人在C#弃元参数的使用场景问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C#弃元参数的使用场景"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
弃元(Discards) 是在 C# 7.0 的时候开始支持的,它是一种人为丢弃不使用的临时虚拟变量。语法上它是用来赋值的,但它却不被分配存储空间,即没有值,所以不能从中读取值。弃元用 _(下划线) 表示,下划线是一个关键字,只能赋值,不能读取,例如:
在 C# 7.0 中,弃元的使用场景主要有下面四种:
元组和对象的解构
使用 is 和 switch 的模式匹配
对具有 out 参数的方法的调用
作用域内独立使用场景
针对这几个场景,用下面的几段代码演示一下。
场景一:元组/对象的解构
var tuple = (1, 2, 3, 4, 5);
(_, _, _, _, var fifth) = tuple;
场景二:使用 is/switch 的模式匹配
var obj = CultureInfo.CurrentCulture.DateTimeFormat;
switch (obj)
{
case IFormatProvider fmt:
Console.WriteLine($"{fmt} object");
break;
case null:
Console.Write("A null object reference");
break;
case object _:
Console.WriteLine("Some object type without format information");
break;
}
if (obj is object _)
{
...
}
场景三:对具有 out 参数的方法的调用
var point = new Point(10, 10);
// 只要 x, 不关心 y
point.GetCoordinates(out int x, out _);
场景四:作用域内独立使用场景
void Test(Dto dto)
{
_ = dto ?? throw new ArgumentNullException(nameof(dto));
}
理解了弃元,也了解了弃元的四种使用场景,那么对下面这个 C# 9.0 新支持的弃元使用场景就容易理解了。
C# 9.0 对弃元增加了一种场景支持:Lambda 参数,也包括匿名方法参数。示例:
// C# 9 之前
Func zero = (a, b) => 0;
Func func = delegate (int a, int b) { return 0; };
// C# 9
Func zero = (_, _) => 0;
Func func = delegate (int _, int _) { return 0; };
在 C# 9 之前,即便不使用的 Lambda 参数也需要给它命名。C# 9 支持弃元参数一方面简化了命名,另一方面也节省了内存分配。更重要的是它使得编程的意图更明确,让人一看就知道这个参数是不用的,增强了代码的可读性和可维护性。
到此,关于"C#弃元参数的使用场景"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
场景
C#
参数
方法
学习
支持
下划线
代码
作用
对象
更多
模式
分配
帮助
独立
实用
重要
接下来
一方
不用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国有多少台服务器
烟用材料质量数据库
互联网交通运输黑科技大赛
sql数据库中avg的用法
淘宝软件开发及实施 项目
网络安全准入助手
上海智慧城市数据库
做软件开发要学习哪些
网络技术和网络安全一样吗
苹果电脑清楚数据库
顺德郭琳网络安全
oracle数据库表关系
化教学应用工具软件开发及
跨系统查询数据库
服务器与无线路由连接
三级分销模式软件开发
官方数据库人名
备份的数据库怎么查看版本
php远程调用数据库
古冶区咨询网络技术售后服务
烟用材料质量数据库
银行新核心系统使用哪种数据库
日本代理ip服务器列表
网络安全的标签
服务器给多个客户端定时发送数据
广南软件开发
第三方服务器怎么样
软件具有数据库的安全性
苏州手机应用软件开发要多少钱
区块链网络安全学习