洪流學(xué)堂麻裳,讓你快人幾步!本文首發(fā)于洪流學(xué)堂微信公眾號器钟。
本文是該系列《Unity腳本運行時更新帶來了什么津坑?》的第6篇。
洪流學(xué)堂公眾號回復(fù)runtime
傲霸,獲取本系列所有文章疆瑰。
Unity2017-2018.2中的4.x運行時已經(jīng)支持到C#6,之前的文章已經(jīng)介紹完畢昙啄。Unity2018.3將支持到C# 7.3穆役,今天我們先來看看C#7.1新特性能給代碼帶來什么吧,不過這些特性得等到Unity2018.3才可以用哦梳凛。
C#7.1 新特性
C#7.1是第一次以次要更新的方式發(fā)布C#語言的更新耿币,可以讓開發(fā)者更快的使用新功能。
默認字面值表達式
默認字面值表達式可以簡化默認值表達式韧拒。比如之前你可能需要這么寫:
Func<string, bool> whereClause = default(Func<string, bool>);
現(xiàn)在你可以省略右邊的類型:
Func<string, bool> whereClause = default;
更多關(guān)于默認值的增強淹接,可以查看相關(guān)文檔:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/default-value-expressions
推斷元組元素名稱
此功能是對C#7.0中引入的元組功能的一個小改進。很多時候初始化元組時叛溢,右側(cè)用于賦值的變量與元組元素的名稱相同:
int count = 5;
string label = "Colors used in the map";
var pair = (count: count, label: label);
在C# 7.1中塑悼,元組元素的名稱可以從用于初始化元組的變量中推斷出來:
int count = 5;
string label = "Colors used in the map";
var pair = (count, label); // element names are "count" and "label"
Async main 異步Main方法
這個功能與Unity內(nèi)的腳本編程沒有太大關(guān)系,不過如果你也開發(fā)C#應(yīng)用的話楷掉,也可以了解一下
在async main方法種厢蒜,你可以使用await
。
之前你需要這么寫:
static int Main()
{
return DoAsyncWork().GetAwaiter().GetResult();
}
現(xiàn)在你可以這么寫:
static async Task<int> Main()
{
// This could also be replaced with the body
// DoAsyncWork, including its await expressions:
return await DoAsyncWork();
}
如果Main沒有返回值烹植,可以直接返回Task類型:
static async Task Main()
{
await SomeAsyncMethod();
}
小結(jié)
本文講解了C#7.1的新特性中對Unity編程有影響的新特性斑鸦,不過這些特性得等到Unity2018.3才可以用哦。
洪流學(xué)堂公眾號回復(fù)runtime
草雕,獲取本系列所有文章鄙才。
把今天的內(nèi)容分享給其他Unity開發(fā)者朋友,或許你能幫到他促绵。