gpt4 book ai didi

.net - 获取枚举值的 GetFields 方法

转载 作者:行者123 更新时间:2023-12-04 23:28:49 26 4
gpt4 key购买 nike

  • 我注意到在调用 GetFields() 时在枚举类型上,我得到了一个 int32 类型的额外字段。它从哪里来的??
  • 当我调用另一个重载 (GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static) ) ,它返回所需的字段。这是否意味着枚举的字段不是 Public ?

  • 谢谢

    最佳答案

    反光板 IL Spy可以解释这一点。

    看一下反编译的枚举,您会看到如下所示的内容:

    .class public auto ansi sealed ConsoleApplication1.Foo
    extends [mscorlib]System.Enum
    {
    // Fields
    .field public specialname rtspecialname int32 value__
    .field public static literal valuetype ConsoleApplication1.Foo Bar = int32(0)
    .field public static literal valuetype ConsoleApplication1.Foo Baz = int32(1)

    } // end of class ConsoleApplication1.Foo

    Foo枚举被实现为一个封装了 int32 的密封类。调用 value__ - 您看到的额外字段。

    值得注意的是,它也继承自 System.Enum它也有额外的(静态)字段。

    关于.net - 获取枚举值的 GetFields 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149591/

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