浅谈 C# 8.0 实际使用感受

关于 C#8 的基本介绍,可以参见这里

C# 8.0 中的新增功能 - C# 指南docs.microsoft.com

一个个说了

  1. Nullable reference types 确实香 只是不知道我的项目里面什么时候才能每个文件都 #nullable enable 。用之前建议提前了解!的用法 不然会像我一样,傻傻的用#pragma warning disable CS8602 #pragma warning restore CS8602
  2. Default interface methods 发布前期待很久,有了发现自己并没有什么特别需要的场景,还是期待 C# 9 的 type classes 吧
  3. Switch expressions 确实简洁一些
  4. Asynchronous streams 这个需要配合 System.Linq.Async 才能发挥全部的实力,不然其实没啥大用
  5. Indices and range 可以把str.SubString(i, str.Length-j) 换成 str[i..^j],感觉还是不错的嘛。某些低版本平台不能用这个的话可以试试 bgrainger/IndexRange
  6. Using declarations 发布前期待很久,发布后居然不支持 discard 。差评!如果支持discard可以玩这样的操作
IDispose CreateDisposeForControl(type element)
{
    element.IsEnabled=false;
    //返回一个在dispose方法里面把element.IsEnabled设为true的IDispose
}
void func()
{
    using _= CreateDisposeForControl(textbox1);
    //do sth
}

剩下的我没怎么用,或者没太多可说的,就不多说了

原文地址:https://www.cnblogs.com/yinyue200/p/13521238.html