当前位置:  开发笔记 > 编程语言 > 正文

将Enum指定为uint的原因是什么?

如何解决《将Enum指定为uint的原因是什么?》经验,为你挑选了4个好方法。

我遇到了一些继承的枚举器uint.我无法弄清楚为什么有人会这样做.

例:

Enum myEnum : uint
{
   ...
}

有人会这样做的任何优势或具体原因?为什么不把它作为defaultint?



1> Tom Anderson..:

如果枚举值大于2,147,483,647且非负数.



2> Jesse Pepper..:

我猜它已经被允许自动转换为uint(在C中,枚举被类型系统视为int).很可能允许对枚举的标志值进行按位OR运算.请参阅http://www.velocityreviews.com/forums/t286596-enums-in-c-and-c.html



3> Hans Passant..:

我能想到的一个原因是范围检查更容易.鉴于大多数枚举从0开始,您只需要检查上限.



4> Scott Willek..:

在某些情况下使用.NET的COM Interop/P/Invoke时,这是方便且绝对必要的.例如,您肯定会在pinvoke.net上找到一些以这种方式定义的内容.在某些情况下,它只是更接近底层API定义,但不是必需的,但在某些情况下,底层API可能会使用其中一些高位作为标志,并且它将需要为UINT.在Interop之外,你可以在普通的C#/ VB.NET中使用一些非常高的位作为标志,这也可能需要uint.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有