AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

C# 8 的新提案:new 关键字类型推断

  • 2019-01-28
  • 本文字数:716 字

    阅读完需:约 2 分钟

C# 8的新提案:new关键字类型推断

在很多情况下,一个地方只允许出现一种可能的类型。C#仍然要求你明确列出类型,但如果目标类型“new”表达式提案被采用,那么就不再需要这些样板代码。


从表面上看,这个特性看起来与 var 关键字恰好相反。它不是根据表达式推断出变量类型,而是从变量推断出表达式的类型。以下是来自提案使用当前语法和建议语法的对比示例。


Dictionary<string, List<int>> field = new Dictionary<string, List<int>>();Dictionary<string, List<int>> field = new();
复制代码


正如你所看到的,当它能够从上下文中推断出类型时,就不需要指定类型。对于局部变量可能没有太大用处,但对于临时参数来说却很方便。


XmlReader.Create(reader, new XmlReaderSettings() { IgnoreWhitespace = true });XmlReader.Create(reader, new() { IgnoreWhitespace = true });
复制代码


在上面的代码中,XmlReaderSettings 类只是用于持有传给 XmlReader 的选项值。我们甚至可以说 XmlReaderSettings 的类型名称对于它所持有的重要信息来说有点”反客为主“了。


这个特性另一个用武之地是不能使用 var 关键字的字段和属性。例如:


private readonly static object s_syncObj = new();
复制代码


根据提案,这个特性不能被用在四个地方。


  • 枚举类型:并非所有枚举类型都包含常量零,因此应该使用显式枚举成员。

  • 接口类型:这是一个利基特性,最好要明确指定类型。

  • 数组类型:数组需要特殊的语法来表示长度。

  • 结构体默认构造函数:它排除了所有基本类型和大多数值类型。如果你想使用这个类型的默认值,可以自己写。


状态


目前,Caller Expression Attribute 被列在C# 8路线图中,状态为“Prototype”。特性测试计划可在 GitHub 上找到。


查看英文原文https://www.infoq.com/news/2019/01/c-sharp-targeted-type-new


2019-01-28 08:004695
用户头像

发布了 731 篇内容, 共 468.7 次阅读, 收获喜欢 2007 次。

关注

评论

发布
暂无评论
发现更多内容

张掖市有等保测评机构吗?在哪里?

行云管家

等保 等级保护 等保测评 张掖

2024年快应用开发者大会即将强势开启,聚焦AI洞见未来

科技热闻

阿里巴巴商品详情API接口(店铺|标题|主图|价格|SKU属性等)

tbapi

阿里巴巴 阿里巴巴商品详情数据接口 阿里巴巴API 阿里巴巴商品数据采集

一等奖!KaiwuDB & 西电联合成果又创佳绩

KaiwuDB

云原生数据库 KaiwuDB KaiwuDB 产学研

CentOS 停服后,服务器 OS 路在何方?

腾源会

CentOS 停服

咦?KaiwuDB 有大事要说?

KaiwuDB

可信数据库 KaiwuDB 分布式多模数据库

聚美优品商品详情数据接口(jumei.item_get)

tbapi

聚美优品API接口 聚美优品商品数据接口 聚美优品商品详情接口

Claude3.5 Opus 注册开通使用全教学,手把手教程

蓉蓉

Claude

京东工业平台商品详情数据接口(vipmro.item_get)

tbapi

京东工业平台数据采集 京东工业平台API 京东工业平台商品数据

灰度吸金大法:高费率与资金流出下的比特币现货ETF巨头地位

区块链软件开发推广运营

dapp开发 区块链开发 NFT开发 公链开发

京东商品详情数据接口(JD.item_get)

tbapi

京东商品详情数据接口 京东API接口 京东商品数据采集 京东商品详情数据

性能测试:性能测试计划

测吧(北京)科技有限公司

测试

电机工厂MES系统-提升生产效率与质量的关键

万界星空科技

生产管理系统 mes 万界星空科技 电机行业 电机MES

etcd框架实践【Java版】

FunTester

借助 API 接口深挖唯品会商品详情:实战指南

Noah

万界星空科技商业开源MES系统全面解析

万界星空科技

开源 开源软件 mes 开源mes 万界星空科技

如何利用爱回收API高效获取商品数据?实战教程分享

tbapi

爱回收 爱回收API接口

一文教你在华为云上部署Discuz论坛网站

华为云开发者联盟

MySQL 云原生 华为云 华为云开发者联盟 企业号2024年7月PK榜

人工智能与专家系统:构建智慧决策的未来

天津汇柏科技有限公司

人工智能’

在 Kubernetes 上用 KubeBlocks + Dify 快速构建生产级 AIGC 应用

小猿姐

redis postgresql Kubernetes operator qdrant

软件测试学习笔记丨Allure2报告定制

测试人

软件测试

C# 8的新提案:new关键字类型推断_语言 & 开发_Jonathan Allen_InfoQ精选文章