VB.Net标志公共枚举SnapshotFlags-无法以'Integer'类型表示常量表达式

时间:2018-07-02 16:36:43

标签: vb.net

千辛万苦地尝试了一段时间才能使一些代码正常工作,这个小片段阻止了我进行其余工作,任何人都可以帮忙

<Flags>
Public Enum SnapshotFlags
    HeapList = 1
    Process = 2
    Thread = 4
    [Module] = 8
    Module32 = 16
    All = 31
    Inherit = 2147483648
End Enum

Error That is shown in VS

1 个答案:

答案 0 :(得分:1)

Integer数据类型的范围是-2147483648至2147483647,因此您的Inherit = 2147483648超出了该范围。

简单的解决方案是将Enum的基本类型更改为Long:

<Flags>
Public Enum SnapshotFlags As Long
    HeapList = 1
    Process = 2
    Thread = 4
    [Module] = 8
    Module32 = 16
    All = 31
    Inherit = 2147483648
End Enum

在这种情况下,使用UInteger也可以。

另一种解决方案是使用-2147483648而不是2147483648作为标志值。