c# - '<>c.<>9' 是什么意思?我找不到它们的任何声明,它们来自哪里?
问题描述
这里是一个JustDecompile反编译的ASP.NET Core nuget包,看不懂'<>c.<>9'的用法,发现他们没有声明,很奇怪,Nuget包名是'Microsoft .Extensions.FileProviders.Physical',类文件名为'PhysicalFilesWatcher'。
解决方案
这是某些编译器生成的代码中某些标识符的一部分。C# 中有多种语言特性,它们被编译器扩展为代码,例如await
' s、auto-properties、yield return
's、闭包等。
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();
}
}
推荐阅读
- google-bigquery - 如何从 BigQuery 中的 Openstreet 地图数据集中提取所有国家/地区的几何图形
- r - Windows R CMD 检查顶级文件:(README)[警告]此文档格式需要非空
element</h1> <div id="body"><p>I have activated GitHub Action to CI for R on Win, OSX, and Linux. On Windows only happen the following warning (which is turned into an error).</p> - javascript - 如何将高度嵌套的 php 数组/对象编码为 JSON?
- javascript - 从 Angular 8 中的请求 URL 中提取 URL 查询参数
- asp.net-core - 当我从 Frontend Angular 9 调用受保护的 Web Api ASP-NET Core (AzureAD) 时,HttpContext.User 为空
- sql - 选择使用日期操作的查询
- google-apps-script - 如何使用 Google 脚本中的 DriveApp 获取图片的“可共享 ID”以将其插入 Google 表格单元格?
- c - 为什么 getchar 不停止获取输入?
- image - 如何在博客中将桌面上的图像与移动设备中的图像对齐?
- javascript - ES6 默认值 - 帮助理解概念