CS5L8——CSharp 6 功能和语法
本章代码关键字
1 2 3
| using static when nameof()
|
C# 6 的新增功能和语法
-
=>
运算符(C#进阶套课——特殊语法 =>
)
-
Null
传播器(C#进阶套课——特殊语法 ?
)
- 字符串内插(C#进阶套课——特殊语法
$
)
- 静态导入
- 异常筛选器
-
nameof
运算符
静态导入
用法:在引用命名空间时,在 using
关键字后面加入 static
关键词
作用:无需指定类型名称即可访问其静态成员和嵌套类型
好处:节约代码量,可以写出更简洁的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| using UnityEngine; using static UnityEngine.Mathf; using static TestA;
public class TestA { public class TestB { }
public static void TTT() { Debug.Log("123123"); } }
public class Lesson7 : MonoBehaviour { void Start() { Max(10, 20); TTT(); TestB t = new TestB(); } }
|
异常筛选器
用法:
在异常捕获语句块中的catch
语句后通过加入when
关键词来筛选异常
when
(表达式)该表达式返回值必须为bool
值,如果为ture
则执行异常处理,如果为false
,则不执行
作用:用于筛选异常
好处:帮助我们更准确的排查异常,根据异常类型进行对应的处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| try { }
catch (System.Exception e) when (e.Message.Contains("301")) { print(e.Message); }
catch (System.Exception e) when (e.Message.Contains("404")) { print(e.Message); }
catch (System.Exception e) when (e.Message.Contains("21")) { print(e.Message); }
catch (System.Exception e) { print(e.Message); }
|
nameof 运算符
用法:nameof(变量、类型、成员)
通过该表达式,可以将他们的名称转为字符串
作用:可以得到变量、类、函数等信息的具体字符串名称
1 2 3 4 5 6 7 8 9 10
| int i = 10; print(nameof(i));
print(nameof(List<int>)); print(nameof(List<int>.Add)); print(nameof(UnityEngine.AI)); List<int> list = new List<int>() { 1, 2, 3, 4 }; print(nameof(list)); print(nameof(List<int>.Count)); print(nameof(list.Add));
|