我正在瀏覽 .NET 源代碼參考 ( https://referencesource.microsoft.com/ ) 以查找定義關鍵字的代碼檔案。具體來說,我對awaitTPL 中的定義/實作方式很感興趣,但我也想在某個時候瀏覽其他關鍵字的內部實作。
在上面的參考站點上搜索字串“await”只會回傳包含字串“await”的類、屬性和欄位名稱(例如,class AwaitTaskContinuation)。
我意識到這似乎是一個基本問題,但我在其他地方找不到任何資訊。
uj5u.com熱心網友回復:
https://referencesource.microsoft.com/提供 .NET Framework 庫的源代碼(對于 .NET Core 使用https://source.dot.net/),它沒有“定義”關鍵字。
在特定情況下await- 它是由編譯器 ( Roslyn ) 處理的語法糖,您可以嘗試搜索它如何將其脫糖為github存盤庫中的實際代碼。
或者(我會說更好,至少在開始時)使用一些 C# 反編譯工具。網上有一個https://sharplab.io/(處理對 C#、IL 甚至 JIT Asm 的反編譯)——以下代碼的示例反編譯:
using System.Threading.Tasks;
public class C {
public async Task M() => await Task.Yield();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/417136.html
標籤:
上一篇:在C#中呼叫擴展方法的不同方法
