zoukankan      html  css  js  c++  java
  • C#各版本新功能 C#7.2

    高效安全的代码增强功能

    它们旨在尽量减少值类型的复制,而不造成与引用类型使用相关的内存分配,进而提升性能

    • 针对实参的 in 修饰符,指定形参通过引用传递,但不通过调用方法修改。 将 in 修饰符添加到参数是 源兼容的更改 。
    • 针对方法返回的 ref readonly 修饰符,指示方法通过引用返回其值,但不允许写入该对象。 如果向某个值赋予返回值,则添加 ref readonly 修饰符是 源兼容的更改 。 将 readonly 修饰符添加到现有的 ref 返回语句是 不兼容的更改 。 它要求调用方更新 ref 本地变量的声明以包含 readonly 修饰符。
    • readonly struct 声明,指示结构不可变,且应作为 in 参数传递到其成员方法。 将 readonly 修饰符添加到现有的结构声明是 二进制兼容的更改 。
    • ref struct 声明,指示结构类型直接访问托管的内存,且必须始终分配有堆栈。 将 ref 修饰符添加到现有 struct 声明是 不兼容的更改 。 ref struct 不能是类的成员,也不能用于可能在堆上分配的其他位置。
      编写高效安全代码

    非尾随命名参数

    正常使用即可,不用看;

    数值数字的前导下划线

    int binaryValue = 0b_0101_0101;

    private protected 访问修饰符

    private protected :访问限于包含类或当前程序集中派生自包含类的类型

    // Assembly1.cs 
    // Compile with: /target:library 
    public class BaseClass
    {
        private protected int myValue = 0;
    }
    
    
    public class DerivedClass1 : BaseClass
    {
        void Access() //正确方法
        {
            myValue = 5; //可以正常访问
        }
    
    void Method1()
    {
            var baseObject = new BaseClass();
            // baseObject.myValue = 5;  // because myValue can only be accessed by    classes derived from BaseClass.
        }
    }

    protected internal :访问限于当前程序集或派生自包含类的类型

    条件ref 表达式

    ref var r = ref (arr != null ? ref arr[ 0 ] : ref otherArr[ 0 ]);
    
  • 相关阅读:
    Web Site 与 Web Application 的区别
    Jquery获取text,areatext,radio,checkbox,select值
    C#怎么样操作world文档中的文字型窗体域?
    DataFormatString 用法
    overload和override的区别
    Apollo安装
    工控机基础
    CAN总线技术基础
    dd命令_Linux dd命令:复制(拷贝)文件,并对原文件进行转换
    Unity2021零基础入门教程
  • 原文地址:https://www.cnblogs.com/maanshancss/p/7be07e2502df85536ab84a9490162a06.html
Copyright © 2011-2022 走看看