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