欢迎光临散文网 会员登陆 & 注册

从零开始独立游戏开发学习笔记(十九)--Unity学习笔记(七)--微软C#指南(四)

2021-12-31 01:12 作者:oyishyi  | 我要投稿

感觉语法了解到这里已经足够了,教程里有很多都是业务流程。现在这一章主要是一些比较新的功能。
这一篇之后就等需要用到的时候再学了。
下一篇回归 unity。

1. try catch finally

和别的语言一样,没什么好说的。

2. 顶级语句

C# 9 提供的特性,并在 C# 10 中改进,便于初学者或者探索新想法时使用。无需写如下:

而是直接一句话代替即可。(此为 C# 10 中改进后的样式)

免去写类写静态方法等繁琐步骤。当然,这是为了方便探索新想法和初学者使用。正规用的话还是老老实实写。

3. 索引和范围

3.1 索引

类似于 python 里的 -1 语法,C# 里是 ^1 来表示从数组后面开始数。
sequence[^1] == sequence[sequence.Length - 1]

3.2 范围

类似于 Python 的 sequence[1-3],C# 也提供范围,语法从 - 变成 ..(注意是两个点),范围也一样包头不包尾。因此表示整个数组的写法是 sequence[0..sequence.Length],^ 语法也同样可以用在范围里。

和 python 一样,得到的结果是一个新副本。

3.3 变量写法

和 python 不一样的是,在 C# 里,索引和范围是两个类型,是可以但单独拿出来作为变量使用的。见如下代码:

3.4 支持格式

String 和 Span<T>ReadOnlySpan<T> 支持索引和范围。
List<T> 支持索引不支持范围。

单维数组和交错数组支持索引和范围。多维数组都不支持。

4. 可为空引用类型

为什么会有可为空这种专门的类型?因为这样可以使代码更为清晰,很方便地区分哪些变量必须有一个值,哪些是可以没有值的。可以表明设计意图。

5. 异步

用法和 js 一样,在函数前加 async 修饰,用 await 来等待异步方法返回。
进阶用法有 await foreach 可以循环使用异步流。 yield return 返回用 async 修饰的方法中的任意元素。


从零开始独立游戏开发学习笔记(十九)--Unity学习笔记(七)--微软C#指南(四)的评论 (共 条)

分享到微博请遵守国家法律