c# - 什么是 C# 中的 "fieldof()"方法

标签 c# field

我在dnspy中反编译了一些unity dll文件
并得到了这条线

RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.51A7A390CD6DE245186881400B18C9D822EFE240).FieldHandle);

我需要了解该行中的 fieldof() 函数,我以前从未见过(因为我是初学者)

以及为什么它在该行中显示错误的两个原因

最佳答案

在 MSIL 中,C# 代码(和一堆其他语言)被编译成的中间语言,有这个方便的 fieldof获取 FieldInfo 的运算符的领域。然而,fieldof在 C# 中不存在。

在 C# 中,您需要执行以下操作:

var type = typeof(EnclosingClass); // "EnclosingClass" is the class this code is in
// assuming PrivateImplementationDetails is private
var fieldInfo = type.GetField("PrivateImplementationDetails", BindingFlags.NonPublic);
RuntimeHelpers.InitializeArray(array, fieldInfo.FieldHandle);

关于c# - 什么是 C# 中的 "fieldof()"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61026150/

相关文章:

C# SSL 基本访问认证

c# - 根据属性值反序列化 Xml 属性

c# - Razor 页面等待 Blazor 组件完成渲染的规范方式是什么?

java - 如何获取在java类中声明的字段的原始类

php - 当 WHERE 子句中缺少一个字段时,防止整个 JOINed MYSQL 查询失败

javascript - 通过下拉菜单(选择选项)动态创建输入字段

c# - 上传文件并发送到服务层,即 c# 类库

c# - 从用户控件访问母版页属性

search - 使用 apache solr 的 Facet 动态字段

delphi - 重启delphi中的AUTO_INCREMENT字段