热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

ReSharper添加对最新C#11特性的支持C#11UTF-8文字-增加了对UTF-8文字的基本支持。代码分析现在建议对文字使用u8后缀,而不是System.Tex

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现在提供了将模式重写为更简单的表达式的操作,同时保留了原始的模式匹配语义。


推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • LeetCode笔记:剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
    本文介绍了LeetCode剑指Offer 41题的解题思路和代码实现,主要涉及了Java中的优先队列和堆排序的知识点。优先队列是Queue接口的实现,可以对其中的元素进行排序,采用小顶堆的方式进行排序。本文还介绍了Java中queue的offer、poll、add、remove、element、peek等方法的区别和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
author-avatar
智颢Tannerfm_937
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有