ReSharper添加对最新C#11特性的支持

news2024/10/5 23:26:44

ReSharper添加对最新C#11特性的支持

  C#11

  UTF-8文字-增加了对UTF-8文字的基本支持。代码分析现在建议对文字使用u8后缀,而不是System.Text.Encoding.UTF8.GetBytes()方法或具有适当UTF8符号的字节数组。还有一组UTF-8文本的编译器警告和错误。

  文件本地类型-添加了对文件本地类型的基本支持,包括对新语法的理解、类型的文件可访问性修饰符、编译器警告和错误以及相应的快速修复,例如当为嵌套类指定文件修饰符时,将类移到外部范围。还有一个有用的上下文操作可以将常规类型转换为文件类型。

  原始字符串-ReSharper现在可以将常规字符串和逐字字符串转换为原始字符串。这也意味着字符串的许多现有功能现在可用于原始字符串。

  列表模式建议-引入了使用新的C#11列表模式语法(而不是使用后续索引器访问表达式进行常规的集合长度检查)来检查集合的相应项的建议。

  静态虚拟成员-从C#11开始,您可以对接口中的静态成员使用抽象和虚拟修饰符,并在具有受此接口约束的类型参数的泛型代码中使用此类成员。ReSharper已更新为以处理普通多态成员的方式处理多态静态成员:

 

  檐沟上的继承标记。

  导航到实施/超级成员。

  缺少实现的生成。

  override关键字之后的代码完成建议还包括接口成员,因此现在可以轻松实现抽象或虚拟静态成员。

  无符号右移(>>>)运算符-ReSharper现在认识到C#开发人员为执行有符号数据类型的无符号右移而必须编写的繁琐代码模式,并建议在C#11中使用无符号右移运算符。

  跨跨度模式匹配-如果你解析字符的跨度,你可能会使用MemoryExtensions。SequenceEqual方法很多。C#11为这种检查引入了一种速记。现在,您可以使用is或switch表达式简单地将字符的Spans与字符串文本进行模式匹配。ReSharper现在建议使用is或switch表达式,而不是大量的if语句。

  ref字段和作用域关键字

  从C#11开始,允许在ref结构中声明ref字段。ReSharper支持这个新的语法规则,提供所有编译器错误和警告,在代码完成时显示ref关键字,并允许在构造函数中初始化这些字段。

  ReSharper还知道一个新的作用域关键字,您可以在by-ref或ref结构参数和局部变量上使用该关键字。支持包括正确解析新语法、代码完成中的作用域关键字,以及在生成方法重写时保留作用域关键字。它还验证作用域修饰符的兼容性,并为重写、接口实现和委托转换上不匹配的作用域参数提供快速修复。

  C#11和Microsoft.NET 7也对该语言的引用安全规则进行了修改。这些更改控制ref和ref结构变量可用于哪些操作,以便通过引入ref字段在托管代码中提供ref安全性。ReSharper现在知道了这些更改,并将帮助您找到项目中需要更新的部分,并使用新的作用域关键字进行注释,以适应迁移到C#11或.NET 7时的更改。

  语言注入

  对语言注入的支持进行了一些更改:

  语言注入现在在C#11原始字符串文本中工作。

  ReSharper支持.NET7中的[StringSyntax]属性,以及用于语言注入和代码完成的不同语法。

  常规C#更新

  全局导入槽标记-添加了一个新的槽标记图标,以通知用户C#和Razor文件中的隐式命名空间导入。

  格式字符串完成-在.NET7中添加Int128和UInt128数字类型后,代码完成格式说明符建议已更新。还添加了.NET 6中缺少对DateOnly和TimeOnly日期/时间类型的支持,以及.NET 5中引入的半精度浮点数字类型。

  表达式的琐碎模式-有时在重构之后,模式匹配表达式可能会变成琐碎的递归模式。此时,使用递归模式语法可能根本不值得,因此ReSharper现在提供了将模式重写为更简单的表达式的操作,同时保留了原始的模式匹配语义。

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

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

相关文章

服务器公网带宽1M能同时接受多少人访问?

文章目录1、什么是服务器的带宽?2、服务器带宽多少?3、服务器带宽1M能同时接受多少人访问?1、什么是服务器的带宽? 在服务器托管中,服务器带宽指在特定时间段从或向网站/服务器传输的数据量,例如,单月内的累积消耗“带宽”,实…

【开源掌机】百问网DShanMCU-Mio开源掌机(爻-澪)项目,完美支持运行10多个模拟器!

众筹说明 定金翻倍,即定金19.9元,在付尾款时可抵40元(成品售价不会超过120元)!达标当天就开搞,满100人加速搞尽量在年前发货,让大家先玩起来!如果不达标则原路退款,项目取消。 众筹时间&#…

利用Matlab进行图像分割和边缘检测

本文章包含以下内容: 1、灰度阀值分割 (1)单阈值分割图像 先将一幅彩色图像转换为灰度图像,显示其直方图,参考直方图中灰度的分布,尝试确定阈值;应反复调节阈值的大小,直至二值化的效果最为满意…

LDR6035PD快充快放带数据还要啥莲花清翁

随着Type-C的普及和推广,目前市面上的移动电源正在慢慢淘汰micro-USB接口,逐渐都更新成了Type-C接口,micro-USB接口从2007年上市,已经陪伴我们走过十多个年头,自从2015年Type-C登场,micro-USB也开始渐渐淡出…

写给前端开发者的「Promise备忘手册」

前言 大家好,我是HoMeTown,Promise想必大家都知道,在平时的开发工程中也经常会有用到,但是Promise作为ES6的重要特性,其实还拥有很多丰富的知识,本文面向比较初级一些的同学,可以帮你搞懂Promi…

金庸群侠传3DUnity重置入门-Mods开发

金庸3DUnity重置入门系列文章 金庸3dUnity重置入门 - lua 语法 金庸3dUnity重置入门 - UniTask插件 金庸3dUnity重置入门 - Mods开发 金庸3dUnity重置入门 - Cinemachine 动画 金庸3dUnity重置入门 - 大世界实现方案 金庸3dUnity重置入门 - 素材极限压缩 (部分可能放到付…

[附源码]Nodejs计算机毕业设计基于web的社团管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

机器学习——01基础知识

机器学习——01基础知识 github地址:https://github.com/yijunquan-afk/machine-learning 参考资料 [1] 庞善民.西安交通大学机器学习导论2022春PPT [2] 周志华. 机器学习.北京:清华大学出版社,2016 [3] AIlearning 一、机器学习算法的应用 目前,机…

【Redis】集合Set和底层实现

文章目录Redis 集合(Set)Set简介常用命令应用场景共同关注实例整数集合整数集合介绍整数集合的升级哈希表哈希表的原理和实现Redis中的哈希表rehash渐进式rehashRedis 集合(Set) Set简介 Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以…

多维时序 | MATLAB实现GRU多变量时间序列预测

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

c语言中fread,fgets等取文件字符的缓存空间小出现问题

一种奇怪现象 #include <stdio.h> #include <stdlib.h> #include<windows.h>int main(void){int i;printf("hello\n");fflush(stdout); //当没有这部刷新&#xff0c;hello会和end等到时间一起输出Sleep(2000); //windowsa.h中的Sleep&#…

某研究生不写论文竟研究起了算命?

起因 大约一个月前&#xff0c;在学校大病一场&#xff08;不知道是不是&#x1f411;了&#xff0c;反正在学校每天核酸没检测出来&#xff09;在宿舍休息了整整一周。当时因为发烧全身疼所以基本一直躺着刷刷视频。看了一周倪海厦老师讲的天纪&#xff0c;人纪感悟颇多&…

央企招聘:中国航空油料集团2023公开招聘

一、公司简介 中国航空油料集团有限公司&#xff08;以下简称“中国航油”&#xff09;成立于2002年10月11日&#xff0c;是以原中国航空油料总公司为基础组建的国有大型航空运输服务保障企业&#xff0c;是国内最大的集航空油品采购、运输、储存、检测、销售、加注为一体的航…

Spring Boot打成jar包后运行及配置文件的问题

Maven打包 因为Spring Boot项目内置Tomcat&#xff0c;所以可以打成一个jar包直接运行&#xff0c;而不必再需要安装Tomcat了。 如果用IDEA打包&#xff0c;还得先添加Artifacts&#xff1a; 然后再选择‘Main Class’ 显然比较麻烦&#xff0c;而且每次导入项目都得重新添加…

高频功率放大器工作原理总结(高频和低频功率放大器的区别)

高频功率放大器处在发射机的末级&#xff0c;主要作用是把高频已调拨信号进行功率放大&#xff0c;满足发送功率的要求&#xff0c;然后通过天线辐射到空间&#xff0c;保证一定区域接收机能够接收到信号电平。 高频功率放大器是通信系统中发送装置的组件&#xff0c;按照频带的…

【DOTS学习笔记】Cache层级结构与排队管理

目录前言如何理解L1,L2,L3级缓存的树形结构设计排队的烦恼现实中的排队烦恼计算机程序设计中的排队队列类型前言 本文是Metaverse大衍神君的《DOTS之路》系列课程的学习笔记 如何理解L1,L2,L3级缓存的树形结构设计 排队的烦恼 现实中的排队烦恼 这是一张关于排队的图&#xf…

论文速递:AAAI 2023 | 优图16篇论文速览,含多标签分类、姿态估计、目标检测、HOI、小样本学习等研究方向

近日&#xff0c;AAAI 2023&#xff08;Association for the Advancement of Artificial Intelligence&#xff09;国际先进人工智能协会公布了录用结果&#xff0c;本届会议共有8777篇投稿&#xff0c;录用1721篇&#xff0c;录用率19.6%。 AAAI是人工智能领域的主要学术组织之…

[go 语言学习笔记] 7天用Go从零实现分布式缓存GeeCache 「持续更新中」

说明 本文用于记录学习 go 语言过程中的笔记, 文中的代码都是在文本中敲出来的伪代码, 并不能直接运行, 如有需要可以参考原文链接. 本文的整体思路是对原系列教程阅读后的复盘. 关于本文参考的 学习教程 可以访问原教程链接: 7天用Go从零实现分布式缓存GeeCache 本文如有…

文本检测识别技术在合合信息的应用实务解决方案

合合信息保险行业全业务流程数字化解决方案 合合信息依托AI大数据&#xff0c;打造了保险行业全业务流程数字化解决方案&#xff1a;OCR智能分类识别文档、表格、卡证、票据、合同等&#xff0c;替代人工录入&#xff0c;图像智能质检优化&#xff0c;实现投保、核保、理赔、合…

(Matlab实现)基于蒙特卡洛模拟的大规模电动车充电模型

目录 摘要&#xff1a; 1电动车日行驶里程概率分布&#xff1a; 2.电动车充电起始时间概率分布&#xff1a; 3.大规模电动车充电行为蒙特卡洛建模&#xff1a; 3.1日行驶里程 3.2开始充电时间 3.3耗电量 3.4充电时间 3.5总充电负荷 4.不同规模的电动车的充电负荷曲线…