C#各版本新功能 C#8.0

ReadOnly 成员

默认接口方法

接口里面的方法都是虚方法,字类不用写override 就能对其进行覆盖;

这与抽象类里面的方法是不同的,接口管理的更加随意;以后都可以用面向接口开发了;

若是同时继承了接口1跟接口2,接口1,2都实现了方法 TurnOnFor

    public interface Interface1
    {
        public void TurnOnFor(int duration)
        {
            Task.Delay(duration);
            Console.WriteLine("我是接口 Interface1 里面的原始方法");
        }
    }

    public interface Interface2: Interface1
    {
        public void TurnOnFor(int duration)
        {
        }
    }

   public class Child : Interface2
    {
    }

    Interface1 child = new Child();

    child.TurnOnFor(11); //调用接口1中的方法

    Interface2 child = new Child();

    child.TurnOnFor(11); //调用接口2中的方法

模式匹配增强

Using 声明 升级

  using() //以前
{}

//现在

using var file =***

//方法的最后会自动帮你释放

静态本地函数

添加 static 修饰符,以确保本地函数不会从封闭范围捕获(引用)任何变量

int M () {     int y = 5 ;     int x = 7 ;     return Add(x, y);

static int Add ( int left, int right ) => left + right; }

可处置的ref结构

可为空的引用类型

异步流

索引和范围

var words = new string[]
{
                // index from start    index from end
    "The",      // 0                   ^9
    "quick",    // 1                   ^8
    "brown",    // 2                   ^7
    "fox",      // 3                   ^6
    "jumped",   // 4                   ^5
    "over",     // 5                   ^4
    "the",      // 6                   ^3
    "lazy",     // 7                   ^2
    "dog"       // 8                   ^1
};              // 9 (or words.Length) ^0

var quickBrownFox = words[1..4];
var lazyDog = words[^2..^0];
var allWords = words[..]; // contains "The" through "dog".
var firstPhrase = words[..4]; // contains "The" through "fox"
var lastPhrase = words[6..]; // contains "the", "lazy" and "dog"

Null合并赋值

C# 8.0 引入了 null 合并赋值运算符 ??= 。 ok

仅当左操作数计算为 null 时,才能使用运算符 ??= 将其右操作数的值分配给左操作数 ok

非托管构造类型

嵌套表达式中的StackAlloc

内插逐字字符串的增强功能 ok

解释说明: $ 和 @,这两个符号谁在前面都可以了

原文地址:https://www.cnblogs.com/maanshancss/p/3992333c4e624cbbbf950dfde75d9d2a.html

时间: 2024-08-27 08:48:20

C#各版本新功能 C#8.0的相关文章

代码演示C#各版本新功能

代码演示C#各版本新功能 C#各版本新功能其实都能在官网搜到,但很少有人整理在一起,并通过非常简短的代码将每个新特性演示出来. 代码演示C#各版本新功能 C# 2.0版 - 2005 泛型 分部类型 匿名方法 可以为null的值类型 迭代器 协变和逆变 C# 3.0版 - 2007 自动实现的属性 匿名类型 查询表达式(LINQ) Lambda表达式 表达式树 扩展方法 var 分部方法 对象和集合初始值设定项 C# 4.0版 - 2010 dynamic 命名参数/可选参数 泛型中的协变和逆变

Kafka 0.11版本新功能介绍 —— 空消费组延时rebalance

在0.11之前的版本中,多个consumer实例加入到一个空消费组将导致多次的rebalance,这是由于每个consumer instance启动的时间不可控,很有可能超出coordinator确定的rebalance timeout(即max.poll.interval.ms),而每次rebalance的代价又相当地大,因为很多状态都需要在rebalance前被持久化,而在rebalance后被重新初始化.曾经有个国外用户,他有100个consumer,每次rebalance的时间甚至要1个

OpenStack Q版本新功能以及各核心组件功能对比

OpenStack Q版本已经发布了一段时间了.今天, 小编来总结一下OpenStack Q版本核心组件的各项主要新功能, 再来汇总一下最近2年来OpenStack N.O.P.Q各版本核心组件的主要新功能.仅供参考, 如有遗漏.错误请指正. 1.1         Q版新功能总结 Q版相对于P版, 主要还是各功能的增强和优化, 其中主要功能有: 计算组件中的vGPU支持.冷迁移至指定主机.PCI NUMA亲和性.卷共享等,镜像组件中的web方式导入镜像, 网络组件中的浮动IP QoS.DVR/

Apache Kafka 0.11版本新功能简介

Apache Kafka近日推出0.11版本.这是一个里程碑式的大版本,特别是Kafka从这个版本开始支持"exactly-once"语义(下称EOS, exactly-once semantics).本文简要介绍一下0.11版本主要的功能变更,下面中的每一项都值得专门写篇文章好好聊聊. 一.修改unclean.leader.election.enabled默认值 Kafka社区终于下定决心要把这个参数的默认值改成false,即不再允许出现unclean leader选举的情况,在正确

hasura graphql-engine v1.0.0-alpha26 版本新功能试用

hasura graphql-engine v1.0.0-alpha26 已经发布了,有好多新的变动,测试使用docker 环境,同时pg 数据库使用了citus citus 是一个方便扩展的pg 数据库扩展解决方案,很不错. 环境准备 docker-compose && citus docker-compose 文件 version: '2.1' services: graphql-engine: image: hasura/graphql-engine:v1.0.0-alpha26 p

XenApp和XenDesktop 7.8版本新功能

1.AppDisk技术的应用程序管理和交付 7.8版本包括了最新的AppDisk应用分层技术,让我们可以独立于主桌面或服务器的镜像之外打包和管理应用程序.其操作流程是当我们根据一个标准的模板发布桌面后,当其中有差异化需求的员工需要立即安装使用一个应用程序的时候,我们不需要在去更新我们的主模板镜像,而是使用AppDisk技术将应用打包后直接置备给该员工使用.这样的应用分发方式在随时随地都可以进行,而且不影响我们整体的主镜像模板.这样的方式也可以减少我们在主镜像上应用程序复杂性. 2.整合AppDi

Ceph Luminous版本新功能预览

今天来聊一聊Ceph新版本功能,Ceph会在今年秋季发布一个长期支持稳定版本Luminous(12.x.x),现在已经出RC版了,Luminous版本新增了很多功能,比如新增一个内置的Dashboard.底层的存储引擎的变更.消息方式的改变等等. 下面我们来一起看看新版本的变化: 1.默认的消息处理从SimpleMessenger变成了AsyncMessenger 2.默认的后端存储从filestore变成了bluestore了 3.内置Dashboard预览 目前来说Ceph的新版本Dashb

[Android P] Android P版本 新功能介绍和兼容性处理(一)

cp from :https://blog.csdn.net/yi_master/article/details/80046696 Android P版本已经到来,首篇我们当然要先看下Android P版本的搭建和模拟器的使用 1: Android studio的版本请选用 Android Studio 3.1 或者 Android Studio 3.2 Canary: Android Studio 3.2 Canary下载链接 这个环境搭建还是比较容易的,就不多叙述了 在安装Android S

C# 8.0中的新功能

微信公众号:Fintech极客 作者为软件开发工程师,就职于金融信息科技类公司,通过CFA一级,分享计算机和金融相结合领域的技术和知识. C# 8.0中的新功能 C# 8.0已经推出来好长一段时间了, 由于公司目前主要使用的还是6.0版本,加上之前个人事情较多,一直没有总结,今天主要查看和测试微软官方文档中的内容:https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8 只读成员(Readonly members) 在st