我在 dnspy 中反编译了一些统一的 dll 文件并得到了这一行
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.51A7A390CD6DE245186881400B18C9D822EFE240).FieldHandle);
Run Code Online (Sandbox Code Playgroud)
我需要了解该行中的 fieldof() 函数,我以前从未见过(因为我是初学者)
以及为什么它在该行中显示错误的两个原因
在 MSIL(C# 代码(以及其他一些语言)被编译成的中间语言)中,有一个方便的fieldof运算符可以获取FieldInfoof 字段。但是,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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |