当前位置: 首页 > news >正文

中山企业网站设计建立网站赚钱 优帮云

中山企业网站设计,建立网站赚钱 优帮云,常见网站建设,软装设计师培训学校C# 7.2和8.0的许多新功能已经列入了计划#xff0c;其中包括空引用类型和有限形式的多重继承。 只读引用和只读结构体 [7.2原型] 首先提到的是只读引用和结构体。简单来讲#xff0c;这项特性使得C#能够使用类似const的参数来提高性能。像我们所知道的“ref只读参数”和简单…C# 7.2和8.0的许多新功能已经列入了计划其中包括空引用类型和有限形式的多重继承。 只读引用和只读结构体 [7.2原型] 首先提到的是只读引用和结构体。简单来讲这项特性使得C#能够使用类似const的参数来提高性能。像我们所知道的“ref只读参数”和简单的“in参数”这些特性使得大的结构体能够通过引用来进行传递并且不允许对其进行修改。 这个提案中的一部分就是只读结构体。开发人员将一个结构体标记为只读之后表示任何方法都不能对这个结构体进行修改。这会对性能有很大提升因为它会告诉编译器它可以跳过通常用于防止意外修改只读变量的复制操作。 Blittable类型 [7.2提案] 维基百科上是这样描述blittable类型的 在微软的.NET框架中数据在托管代码和非托管代码中的内存表示是截然不同的。然而blittable类型被定义为在这两种不同的环境下数据在内存中的表示是完全相同的并且可以直接共享。 Non-blittable类型包括Boolean、string、char以及所有的引用类型。如果一个结构体包含了其中的一种类型那么这个结构体本身也是non-blittable的。 目前C#编译器通过检查一个类型的结构来推断它是否是blittable的。这在过去引发了一些问题因为有时增加一个新的字段会使得一个blittable类型变成non-blittable然而在某些情况下这种变化是致命的。 在Blittable类型提案中提到使用关键字“blittable”能够明确地将一个结构体定义为blittable的。如果之后它的类型被修改为non-blittable的编译器就会报错。 为了保证长期的向后兼容性被定义为blittable的结构中只能包含同样明确定义为blittable的结构。此外结构中不能使用StructLayout(LayoutKind.Auto)]。它表示的是结构体在物理内存中的排列方式。Explicit layout和sequential layout都是可以使用的。 注意能够修改一个结构体的LayoutKind或者Pack被认为是一个突破性的改进因为它改善了非托管代码访问结构体的方式。 Microsoft担心这个特性的过渡期。低层的类库必须采用明确的blittable类型更高层的类库才能使用它们。 ref-like类型编译期安全增强 [7.2提案] 这个特性也叫做“interior pointer”或者“类ref类型ref-like types”。该提案允许编译器要求只能有特定的类型出现在栈上比如SpanT。其中列举了如下几个原因 SpanT在语义上表示的是一个包含了一个引用和一个范围的结构体ref T data, int length。不管它的实现是怎样的对这种类型的结构体的写入操作并不是原子的。并发地对这个结构进行“撕裂tearing”可能会导致它的长度和数据不匹配有可能会引起超出访问范围out-of-range和类型不安全这最终可能会导致GC时的堆崩溃尽管代码看起来似乎是“安全”的。在一些SpanT的实现中它的字段中会包含一个托管指针managed pointer。托管指针不支持堆对象的字段并且将托管指针指向放在GC堆上的代码会在JITJust-in-time期间崩溃。SpanT允许引用局部堆栈帧中的数据单独的局部变量或者栈上分配的数组。当SpanT的实例的生命周期超过了引用的数据时这会导致未定义的行为包括类型安全违规和堆崩溃。 ref-like类型有如下几种使用限制 ref-like类型不能作为数组的元素ref-like类型不能用作泛型类型参数ref-like变量不能被装箱ref-like类型不能作为普通的非ref-like类型的字段一些间接限制例如不允许在异步方法中使用ref-like类型异步方法不支持ref-like类型字段 事实上这意味着ref-like类型仅能被用作参数、局部变量以及某些情况下的返回值。ref-like类型能够包含另一个ref-like类型。 所有的ref-like类型都是只读结构体详见上方描述。 像ref类型一样ref-like类型最终可能会成为“单赋值single-assignment”类型。该提案也提到了其他保障安全的方法但是这个方法对编译器的负担是最小的。 C# 8.0原型 C# 8的两个新特性已经到达了原型阶段 可空引用类型Nullable Reference Types这个特性使得所有的引用类型在默认情况下都是不可空non-nullable的。如果能够使用非空类型你还会使用T模板吗就像你会使用可空结构一样。默认接口方法Default Interface Methods这个特性使得C#引入了有限形式的多重继承。 原文地址http://www.infoq.com/cn/news/2017/06/CSharp-7.2 .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://wiki.neutronadmin.com/news/386980/

相关文章:

  • 网站建设中html中关于图片显示的标签有哪些wordpress优酷自适应
  • 网站管理系统深圳城建局
  • 云南网站推广的目的西安网站建设培训中心
  • 科技公司网站模板下载手机开发者模式利弊
  • 检查目录遍历漏洞wordpress站点内网域名
  • 设计师网站 知乎个人主页是什么
  • 怎么把自己的网站做自适应网站中企动力建的网站如何
  • 个人主页界面网站搬家
  • 哪个网站可以做微信推送深圳专业网站建设平台网页
  • 建立一个购物网站做淘宝客必须建网站吗
  • 关键词工具网站厦门建站比较好的公司
  • 建设大学网站费用网站建设详细过程
  • 怎么创建网站域名做玩具什么 网站比较好
  • 行业门户网站运营wordpress分类不显示图片
  • 昆明建网站的公司cpanel伪静态wordpress
  • 成都网站排名优化报价wordpress本地数据库密码忘记
  • 兰州市网站建设公司怎样查看wordpress
  • 青岛做网站优化的公司一站式做网站
  • 二道网站建设上海企业服务云官网
  • 用easyui 做的网站郑州妇科医院哪个医院最好
  • 苏州建设网站公司2023还能上的网站
  • 网站推广指标演艺公司
  • 做电子商务的网站网站建设流程渠道
  • 济南做网站公司排名wordpress后台首页增加论坛帖子
  • 网站集约化建设做法西安工程建设信息网站
  • 设计师可以做兼职的网站有哪些wordpress最热文章
  • 嘉兴手机建站模板专业手机网站建设
  • 做物流有哪些网站淘宝特价版
  • 客户如何找到做网站宣传的律师android软件开发工程师
  • 岳阳网站建设制作湖南平台网站建设公司