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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF1540B Tree Array(期望,dp)

解析 关于合理的实现 这题卡在最后的小破dp是我没想到的 一开始看到200的数据范围就不禁笑出了声 lca直接On求&#xff01; 然后就开始大力分类讨论 然后就卡在了一个问题上 两个栈AB&#xff0c;分别有a和b个元素&#xff0c;随机从两个栈中弹出一个元素&#xff0c;求最后A栈…

pjudge#21614-[PR #1]守卫【Kruskal生成树,费用流】

正题 题目链接:http://pjudge.ac/problem/21614 题目大意 给出一张nnn个点mmm条边的一张图&#xff0c;有kkk个守卫&#xff0c;每个守卫都有一个点集SSS表示这个守卫可以被派遣到这个点集中的某个点&#xff0c;然后你可以选择一些边删除&#xff0c;要求使得每个点都恰好和…

I - The Mad Mathematician FZU - 2042(未解决)

I - The Mad Mathematician FZU - 2042 题意&#xff1a; 给你一段伪代码&#xff1a;如图 现在给你A&#xff0c;B&#xff0c;C&#xff0c;D&#xff0c;E&#xff0c;的具体值&#xff0c;问你sum是多少 0<A,B,C,D,E<263-1 题解&#xff1a; 数位dp&#xff1f;…

程序员修仙之路--高性能排序多个文件

点击上方蓝色字体&#xff0c;关注我们菜菜呀&#xff0c;昨天晚上班级空间崩溃了程序员主力 Y总what&#xff1f;菜菜我看服务器上写了很多个日志文件&#xff0c;我看着太费劲了&#xff0c;能不能按照日期排序整合成一个文件呀&#xff1f;程序员主力 Y总Y总要查日志呀&…

CF718E Matvey‘s Birthday(状压、bfs、暴力、分类讨论)

解析 比较复杂的一道题 看数据范围&#xff0c;我们肯定要从种类很少的颜色入手 因为第二种加边方式和颜色密切相关 所以设计disi,kdis_{i,k}disi,k​表示 i 号节点到颜色为 k 的节点的最小步数 通过对每个k bfs一遍就能得出答案 然后两个点之间的距离就可以写出转移式&#…

P5366-[SNOI2017]遗失的答案【状压dp,FWT】

正题 题目链接:https://www.luogu.com.cn/problem/P5366 题目大意 给出一个n,G,Ln,G,Ln,G,L。 qqq次询问在1∼n1\sim n1∼n中选择若干个数字并且数字xxx必选&#xff0c;要求这些数的gcdgcdgcd为GGG且lcmlcmlcm为LLL的方案数。 1≤n,G,L,x≤108,1≤q≤1051\leq n,G,L,x\leq 1…

2017ACM/ICPC广西邀请赛

2017ACM/ICPC广西邀请赛&#xff08;感谢广西大学&#xff09; 题号题目考点难度AA Math Problem数论签到题BColor itCCounting StarsDCoveringECS Course思维 &#xff0c;二进制思维题FDestroy Walls最大生成树GDuizi and Shunzi思维题HLaw of CommutationIMatching in a Tr…

【.NET Core项目实战-统一认证平台】第十四章 授权篇-自定义授权方式

上篇文章我介绍了如何强制令牌过期的实现&#xff0c;相信大家对IdentityServer4的验证流程有了更深的了解&#xff0c;本篇我将介绍如何使用自定义的授权方式集成老的业务系统验证&#xff0c;然后根据不同的客户端使用不同的认证方式来集成到统一认证平台。.netcore项目实战交…

CF1500C Matrix Sorting(拓扑排序)

解析 神仙题 我想到了一部分&#xff0c;但是由于没想到倒着做&#xff0c;后面越想越复杂… 本题的关键是要倒着想 考虑最后一次排序的列x 必须是单调不增的 否则直接错 然后倒数第二列y 必须在x列相等的段内单调不增&#xff0c;因为这些地方x无法起到排序的作用 同理再到倒…

P8292-[省选联考 2022]卡牌【状压,容斥】

正题 题目链接:https://www.luogu.com.cn/problem/P8292 题目大意 有nnn张卡牌&#xff0c;第iii张上的数字是sis_isi​。mmm次询问给出cic_ici​个质数&#xff0c;要求选择一些卡使得这些卡的乘积是这些质数的倍数&#xff0c;求方案数。 1≤n≤106,1≤si≤2000,1≤m≤1500…

D - Covering HDU - 6185(未解决完)

D - Covering HDU - 6185 题意&#xff1a; 4 * n的地板&#xff0c;有无数个1 * 2 和2 * 1 的砖块&#xff0c;问有多少方式填满&#xff1f; 1≤n≤10^18 题解&#xff1a; 矩阵快速幂 代码&#xff1a;

.NET-记一次架构优化实战与方案-前端优化

前言上一篇《.NET-记一次架构优化实战与方案-梳理篇》整理了基本的业务知识&#xff0c;同时也罗列了存在的问题&#xff0c;本篇主要是针对任务列表的页面进行性能优化。该篇主要涉及的是代码实现上的优化&#xff0c;实现上的问题是战术债务&#xff0c;也就是我们平常出现的…

11.17 模拟:总结

解析 50pts 50000 最后一次模拟 …说不出太多好话来 口罩、核酸、没样例、最困的点、T4诡异的题面和莫名其妙的链接…可以说是天时地利人和全都没的一干二净了 但有一说一今天的题&#xff08;除了T4&#xff09;都还是不错的&#xff0c;虽然难的要死&#xff0c;但是大部分…

GDOI2022游记

文章目录Day -1Day 0Day 1Day 2Day 3()Day ?~?Day ?Day -1 考前好像写题状态不太好&#xff08;可能是纯粹的懒&#xff09;。 开始写板子&#xff0c;很多算法都很久没碰了&#xff0c;有的调了很久才过。树剖都调了一个多小时&#xff0c;身败名裂。不过想想省选应该不怎…

第十一届山东省大学生程序设计竞赛

第十一届山东省大学生程序设计竞赛 题号题目知识点难度ABeta GoBBuild Roads最小生成树&#xff0c;思维题一般CCat Virus构造题有点难想DDyson Box模拟签到题EEvaluate ExpressionFBirthday CakeGGrade Point Average模拟签到题HAdventurer’s Guild背包问题签到题IChemical …

[CF/AT/Luogu]各大网站网赛 爆肝部部长工作报告文件Ⅱ

文章目录CodeForcesLATOKEN-Round-1(Div.1Div.2)A. Colour the FlagB. Histogram UglinessC. Little Alawns PuzzleD. Lost TreeE. Lost ArrayF1. Falling Sand (Easy Version)#726-Div.2A. Arithmetic ArrayB. Bad BoyC. Challenging CliffsD. Deleting DivisorsE. Erase and …

.NET-记一次架构优化实战与方案-梳理篇

前言程序员输出是他敲写的代码&#xff0c;那么输入就是他思考好的设计。因此不做设计是不存在&#xff0c;设计只分优秀的设计和糟糕的设计。为了避免过度设计浪费成本&#xff0c;需要针对现有业务与问题进行展开。业务梳理是不可避免的。优化是无止尽&#xff0c;为了更有成…

P3605 [USACO17JAN]Promotion Counting P(树状数组)

解析 做法很多的一道题 sol1 先求出dfs序&#xff0c;离线下来&#xff0c;然后按权值大小的顺序统计答案并插到对应的dfs序中 sol2 离散化后&#xff0c;dfs过程中动态维护树状数组&#xff0c;利用前后差值求出答案 sol3 树上dsu 就比较无脑了&#xff0c;暴力维护即可…

Build Roads

Build Roads 题意: n个点&#xff0c;每个点的值为a[i],求最小生成树 a[i]是通过题目中给出的程序得到&#xff08;即a[i]如何得到的我们并不需要很了解&#xff09; 题解&#xff1a; 肯定不能直接跑最小生成树&#xff0c;因为数据太大了 银川也有个类似的题&#xff0c;…

CF1672E-notepad.exe【交互,二分】

正题 题目链接:https://www.luogu.com.cn/problem/CF1672E 题目大意 有一个你不知道的长度为nnn的序列lll&#xff0c;你每次可以询问一个长度www。交互库会返回一个hhh表示最少能将lll分成多少连续段使得每一段[l,r][l,r][l,r]都满足∑ilrlir−l≤w\sum_{il}^rl_ir-l\leq w∑…