C# 8 新特性 - 静态本地方法
生活随笔
收集整理的這篇文章主要介紹了
C# 8 新特性 - 静态本地方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
從C#?8?開始,本地方法就可以是靜態(tài)的了。?
與其他的本地方法不同,靜態(tài)的本地方法無法捕獲任何本地狀態(tài)量。?
?
直接看例子:?
這段代碼里有兩個本地方法,他們分別對實例的一個字段和方法里的一個本地變量進行了修改操作,也就是捕獲并更新了本地的狀態(tài)。?
?
其運行結(jié)果是:?
可以看到類的成員字段和方法本地變量的狀態(tài)都被這兩個本地方法修改了。。?
?
避免實例狀態(tài)被修改?
但是很多情況下,你并不希望類的實例字段和方法本地變量的值被捕獲或修改。在C#?8里面,你可以使用靜態(tài)本地方法來達到這個目的。?
其做法很簡單,就是在原來這兩個本地方法前面加上static關(guān)鍵字即可:?
可以看到程序報錯了,這是因為靜態(tài)本地方法是不可以訪問和捕獲實例的狀態(tài)的,包括實例成員和方法本地變量。?
?
針對第一個本地方法,我直接把更新本地變量的語句去掉:?
?
而針對第二個本地方法,如果你真的想修改實例成員的狀態(tài),那么就需要把成員改為靜態(tài)的:?
?
其運行結(jié)果是:?
?
優(yōu)點?
C# 8的這個特性對可讀性其實沒有特別大的幫助,但是它卻可以防止本地方法捕獲實例狀態(tài),在一些情況下,這對性能有很大的幫助。?
更詳細教程請點擊原文鏈接。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的C# 8 新特性 - 静态本地方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优化 .net core 应用的 doc
- 下一篇: C# 8 新特性 - 只读struct成