gpt4 book ai didi

c# - '<>c.<>9' 是什么意思?我找不到它们的任何声明,它们来自哪里?

转载 作者:行者123 更新时间:2023-12-05 02:53:27 25 4
gpt4 key购买 nike

这里是JustDecompile反编译的ASP.NET Core nuget包,我看不懂'<>c.<>9'的用法,我发现他们没有声明,很奇怪,Nuget包名是“Microsoft.Extensions.FileProviders.Physical”,类文件名为“PhysicalFilesWatcher”。

最佳答案

这是某些编译器生成的代码中某些标识符的一部分。 C# 中有多种语言特性,可由编译器扩展为代码,例如 await'小号,auto-properties , yield return的,closures和其他人。

UPD

在这种情况下,根据我的反编译,它似乎是编译器为此 Action lambda 生成的代码:

private static readonly Action<object> _cancelTokenSource = state => ((CancellationTokenSource)state).Cancel();

它在生成的静态构造函数中通过如下方式初始化:

PhysicalFilesWatcher._cancelTokenSource = new Action<object>((object) PhysicalFilesWatcher.'<>c.<>9, __methodptr(<. cctor>b__43_0));

[CompilerGenerated]
[Serializable]
private sealed class <>c
{
public static readonly PhysicalFilesWatcher.<>c <>9;

static <>c()
{
PhysicalFilesWatcher.<>c <>9 = new PhysicalFilesWatcher.<>c();
}

public <>c()
{
base..ctor();
}

internal void <. cctor>b__43_0(object state)
{
((CancellationTokenSource) state).Cancel();
}
}

关于c# - '<>c.<>9' 是什么意思?我找不到它们的任何声明,它们来自哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62239583/

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