C#9.0 終於來了,帶你一起解讀Pattern matching 和 nint 兩大新特性玩法
阿新 • • 發佈:2020-06-13
## 一:背景
### 1. 講故事
上一篇跟大家聊到了`Target-typed new` 和 `Lambda discard parameters`,看部落格園和公號裡的閱讀量都達到了新高,甚是欣慰,不管大家對新特性是多頭還是空頭,起碼還是對它抱有一種極為關注的態度,所以我的這個系列還得跟,那就繼續開擼吧,今天繼續帶來兩個新特性,更多新特性列表,請大家關注:[新特性預覽]( https://github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md "新特性預覽")
## 二:新特性研究
### 1. Native ints
從字面上看貌似是什麼原生型別ints,有點莫名其妙,還是看一看`Issues`上舉得例子吧:
``` C#
Summary: nint i = 1; and nuint i2 = 2;
Shipped in preview in 16.7p1.
```
有點意思,還是第一次看到有nint這麼個東西,應該就是C#9新增的關鍵詞,好奇心爆棚,快來實操一下。
``` C#
static void Main(string[] args)
{
nint i = 10;
Console.WriteLine($"i={i}");
}
```
![](https://huangxincheng.oss-cn-hangzhou.aliyuncs.com/img/20200612222044.png)
從圖中看,可以原樣輸出,然後用ILSpy查查底層IL程式碼,發現連IL程式碼都不用看