從零開始獨立游戲開發(fā)學習筆記(十九)--Unity學習筆記(七)--微軟C#指南(四)

感覺語法了解到這里已經(jīng)足夠了,教程里有很多都是業(yè)務(wù)流程。現(xiàn)在這一章主要是一些比較新的功能。
這一篇之后就等需要用到的時候再學了。
下一篇回歸 unity。
1. try catch finally
和別的語言一樣,沒什么好說的。
2. 頂級語句
C# 9 提供的特性,并在 C# 10 中改進,便于初學者或者探索新想法時使用。無需寫如下:

而是直接一句話代替即可。(此為 C# 10 中改進后的樣式)

免去寫類寫靜態(tài)方法等繁瑣步驟。當然,這是為了方便探索新想法和初學者使用。正規(guī)用的話還是老老實實寫。
3. 索引和范圍
3.1 索引
類似于 python 里的 -1 語法,C# 里是 ^1 來表示從數(shù)組后面開始數(shù)。sequence[^1] == sequence[sequence.Length - 1]
3.2 范圍
類似于 Python 的?sequence[1-3]
,C# 也提供范圍,語法從 - 變成 ..(注意是兩個點),范圍也一樣包頭不包尾。因此表示整個數(shù)組的寫法是?sequence[0..sequence.Length]
,^ 語法也同樣可以用在范圍里。
和 python 一樣,得到的結(jié)果是一個新副本。
3.3 變量寫法
和 python 不一樣的是,在 C# 里,索引和范圍是兩個類型,是可以但單獨拿出來作為變量使用的。見如下代碼:

3.4 支持格式
String
?和?Span<T>
,ReadOnlySpan<T>
?支持索引和范圍。List<T>
?支持索引不支持范圍。
單維數(shù)組和交錯數(shù)組支持索引和范圍。多維數(shù)組都不支持。
4. 可為空引用類型
為什么會有可為空這種專門的類型?因為這樣可以使代碼更為清晰,很方便地區(qū)分哪些變量必須有一個值,哪些是可以沒有值的??梢员砻髟O(shè)計意圖。
5. 異步
用法和 js 一樣,在函數(shù)前加 async 修飾,用 await 來等待異步方法返回。
進階用法有 await foreach 可以循環(huán)使用異步流。 yield return 返回用 async 修飾的方法中的任意元素。