gpt4 book ai didi

c# - .NET 源代码中定义的关键字的位置

转载 作者:行者123 更新时间:2023-12-02 18:22:08 25 4
gpt4 key购买 nike

我正在浏览 .NET 源代码引用 ( https://referencesource.microsoft.com/ ),以查找定义关键字的代码文件。具体来说,我对 TPL 中的 await 是如何定义/实现的感兴趣,但我也想有时浏览一下其他关键字的内部实现。

在上面的引用站点上搜索字符串“await”只会返回包含字符串“await”的类、属性和字段名称(例如,class AwaitTaskContinuation)。

我意识到这似乎是一个基本问题,但我在其他地方找不到任何相关信息。

最佳答案

https://referencesource.microsoft.com/提供 .NET Framework 库的源代码(对于 .NET Core 使用 https://source.dot.net/ ),它不“定义”关键字。

await 的特殊情况下 - 它是由编译器处理的语法糖 ( Roslyn ),您可以尝试在 github 中搜索它如何将其脱糖为实际代码。 repo 协议(protocol)。

或者(我想说更好,至少在开始时)使用一些 C# 反编译工具。网上有一个https://sharplab.io/ (处理 C#、IL 甚至 JIT Asm 的反编译)- example decompilation对于以下代码:

using System.Threading.Tasks;
public class C {
public async Task M() => await Task.Yield();
}

关于c# - .NET 源代码中定义的关键字的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70761866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com