C#9.0目标类型推导new表达式举例分析
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"C#9.0目标类型推导new表达式举例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2026年11月03日C#9.0目标类型推导new表达式举例分析
本篇内容介绍了"C#9.0目标类型推导new表达式举例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
关于类型推导想必大家都很熟悉,它是在 var 关键字引入的时候引入 C# 的。
var i = 10;
var u = new User();编译器会通过右边的字面量自动推导左边变量的类型,这种推导方式可以归纳为:从上下文右边推导出左边的类型。我们不防把它称为源类型推导(Source-typed inferring,参考 Target-typed 自创的术语)。
相应的,有源类型推导就有目标类型推导 (Target-typed inferring),它是指从上下文左边推导出右边的类型。比如数组的初始化和 Lambda 表达式常常是目标类型推导的表达式。举个例子:
// 没有使用类型推导
string[] s = new string[] { "a", "b" };
// 目标类型推导(左推右)
string[] s = new { "a", "b" };
string[] s = new [] { "a", "b" };
// 没有使用类型推导
Users.FirstOrDefault(u => u.id = 123);
// 目标类型推导(左推右)
Users.FirstOrDefault(u => u.id = 123); 这次在 C# 9 中,增加了用户定义类型 new 表达式的目标类型推导,即通过上下文左边自动推导 new 表达式的类型,从而在使用 new 构造时省略类型的指定,请看示例:
// C# 9 之前
Point p = new Point(3, 5);
// C# 9
Point p = new (3, 5);除此之外,C# 9 也增加了操作符 ?? 和 ?: 的目标类型推导支持。之前这两个操作符必须要求两边的操作对象都是相同的类型,否则会编译报错。而在 C# 9 中,只要目标类型是操作对象共同的基类就不再会编译报错了,比如:
// Student 和 Customer 拥有共同的父类 Person
Person person = (Person)(student ?? customer); // C# 9 之前
Person person = student ?? customer; // C# 9
// 可空类型,0 和 null 都可以隐式转换为 int? 类型
int? result = b ? 0 : (int?)null; // C# 9 之前
int? result = b ? 0 : null; // C# 9其实本文的核心就一句代码:
Point p = new (3, 5);
"C#9.0目标类型推导new表达式举例分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
类型
C#
目标
表达式
上下
上下文
右边
编译
分析
内容
对象
操作符
更多
知识
实用
相同
学有所成
接下来
两个
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳市人人互联网科技有限公司
上海睿民互联网科技有限公司
北京路客互联网科技有限公司
广州百单互联网科技有限公司
互联网科技社
科技互联网技术
深圳天众互联网科技公司
广西互联网科技公司
上海万想互联网科技
科技大学互联网专业好不好
华脉科技工业互联网产品
科技赋能互联网健康
移动互联网科技股
互联网金融中的现代科技
米聚互联网科技南京有限公司排面
天津腾达互联网科技有限公司
互联网数据科技专业
国大互联网教育科技有限公司薪资
世界互联网科技成果奖
国产互联网科技公司
互联网和科技创新
互联网与科技发展
天下捷融互联网科技
老年人脱离互联网科技的作文
互联网校园科技培训
威龙国际互联网科技公司
沐思想互联网科技有限公司
元气玛特互联网科技公司是外包吗
中国互联网有什么科技
互联网科技机房