为什么枚举需要显式转换为 int 类型?

2023-11-26

这样做不会丢失数据,那么为什么必须显式地将枚举转换为整数呢?

如果它是隐式的,那么当您有更高级别的方法时,例如:

PerformOperation ( OperationType.Silent type )

where PerformOperation调用一个封装的 C++ 方法,该方法公开如下:

_unmanaged_perform_operation ( int operation_type )

枚举有两种主要且不一致的用途:

enum Medals
{ Gold, Silver, Bronze }

[Flags]
enum FilePermissionFlags
{
    CanRead = 0x01,
    CanWrite = 0x02,
    CanDelete = 0x04
}

在第一种情况下,将这些东西视为数字是没有意义的。它们存储为整数的事实是一个实现细节。您无法逻辑地对金、银和铜进行加、减、乘或除。

在第二种情况下,它also将这些东西视为数字是没有意义的。你不能对它们进行加、减、乘或除。唯一合理的操作是按位操作。

枚举是糟糕的数字,因此您不应该意外地将它们视为数字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么枚举需要显式转换为 int 类型? 的相关文章

  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • ActiveRecord::Enum - PG::InvalidTextRepresentation:错误:整数输入语法无效:

    我遇到了一个奇怪的错误 希望有人能指出我正确的方向 我有一个名为 组织 的模型和一个名为 组织 的属性department 请参阅下面的架构摘录 t integer department default 0 在我的模型内部已经定义了这个属性
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 私有模板函数

    我有一堂课 C h class C private template
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 从 git diff 中排除目录

    我想知道如何从 Git diff 中排除整个目录 在本例中为 spec 我正在使用 git diff 命令为我们的整个软件版本创建一个差异 然而 规格的更改与此过程无关 只会带来麻烦 现在我知道我能做到 git diff previous
  • MySQL两列时间戳默认NOW值ERROR 1067

    我有如下所示的表格 为了解决一个默认问题nowMySQL的列限制我使用了如图所示的提示here CREATE TABLE IF NOT EXISTS mytable id INT NOT NULL AUTO INCREMENT create
  • 使用另一个节点版本重新编译节点依赖项

    我想安装一些依赖项 在本例中安装 node pty 但是当我运行它时 他们给了我这个错误 错误 模块 home dev Documents project node web kit node modules node pty build R
  • 为什么结构/联合兼容性需要标记和名称相等?

    C99标准第6 2 7 1节中有以下语言 如果它们的标签和成员满足以下要求 则在单独的翻译单元中声明的两个结构体 联合或枚举类型是兼容的 如果其中一个使用标签进行声明 则另一个应使用相同的标签进行声明 如果两者都是完整类型 则适用以下附加要
  • 根据列类型对数据框中的变量进行子集化

    我需要根据列类型对数据帧进行子集化 例如 从具有 100 列的数据帧中 我只需要保留那些具有类型的列factor or integer 我已经编写了一个简短的函数来执行此操作 但是 CRAN 上有没有更简单的解决方案或一些内置函数或包 我当
  • 当 Java 8 Stream 抛出 RuntimeException 时,预期的行为是什么?

    当遇到一个RuntimeException在流处理期间 流处理是否应该中止 应该先完成吗 是否应该重新抛出异常Stream close 异常是按原样重新抛出还是被包装 JavaDoc 的Stream和包装java util stream对此
  • 如何使用中文版 mPDF

    我正在使用 mPDF 将表单输入数据保存到 PDF 对于英语来说 它工作得很好 任何人都可以使用此代码将 HTML 表单数据保存为 PDF 问题 为了满足我的项目要求 我需要使用中文 我当前的代码不适用于此 表单 html
  • Android GridView 按钮单击处理程序

    我有一个安卓GridView与ImageView TextView和两个Button s 网格看起来很好 但我发现很难处理其中的按钮事件GridView 我是安卓新手 任何帮助 将不胜感激 Thanks 如果您希望按钮 以及其他任何内容 在
  • 如何克隆 Servlet 容器提供的分离的 HttpServletRequest 和 HttpServletResponse?

    我想实现以下逻辑 当我在主servlet的doService方法 在主web容器线程中 收到HttpServletRequeset和HttpServletResponse时 我启动A B C三个线程 由我自己的程序管理的线程 以并行模式处理
  • JQuery 文件上传在单独的 Post 请求中发送每个文件?

    我的问题既简单又复杂 我尝试使用 jQuery fileUpload 库和 spring mvc 控制器作为服务器端上传文件 但我的文件每个都由一个请求上传 我想要的是将它们全部发布在一个请求中 我努力了单文件上传 假选项 但它不起作用 如
  • 使用 Zend Action Helper ContextSwitch 创建自定义 JSON 响应对象

    我通常将编码的 json 对象附加到响应正文 但是现在我遇到了需要使用 ContextSwitch 操作助手的情况 我有一个 Zend Form 需要三个不同的响应上下文 html 将表单渲染为普通 html 在布局内 html 部分 渲染
  • .NET 中最简单的键/值对文件解析

    我的项目需要一个文件 我将在其中存储用户应该能够读取和修改的键 值对数据 我希望程序只期望键在那里 并且我想尽快从文件中解析它们 我可以将它们存储在 XML 中 但是 XML 太复杂了 它需要遍历节点和子节点等等 我想要的只是一些接受文件并
  • 在 ddply 中使用 ifelse 和转换

    我正在尝试使用ddply with transform填充一个新变量 summary Date 在带有变量的数据框中ID and Date 变量的值是根据正在评估的片段的长度来选择的ifelse 如果给定月份内某个 ID 的观测值少于 5
  • ScrollView 正在捕获谷歌地图的触摸事件

    我有一个水平滚动视图 其中包含视图组的层次结构 最后是谷歌地图 我的问题是 HSV 正在捕捉地图上的左右阻力 我试过了 hsv requestDisallowInterceptTouchEvent true 乃至 mapView getPa
  • 如何限制 ngFor 重复 Angular 中的某些项目?

    My Code li class dropdown item li
  • 在没有 UWP 的情况下从 C++/WinRT 使用 FileOpenPicker 时出现“无效窗口句柄”错误

    我正在尝试使用C WinRT写一些有趣的东西 由于我的 Windows 编程经验很少 也没有 C CX 经验 所以我开始尝试示例程序 OCR 示例程序是关于光学字符识别的 我将其修改为面部检测器 基于控制台 效果非常好 我想将获取文件从命令
  • 在没有互联网的情况下从 R 中的 Plotly 导出 PNG 文件

    在这个问题中 从 R 中的 Plotly 导出 PNG 文件我问如何将 Plotly 绘图导出到磁盘 我使用了该功能plotly IMAGE 但后来发现该函数使用了 Plotly 互联网服务器 问题是 现在 Plotly JavaScrip
  • Prolog 中的随机项

    我知道我能做到X is random 10 获取 0 到 10 之间的随机数 但是是否有类似的命令来获取随机匹配项 SWI Prolog v6 有random member 2定义如下 listing random member rando
  • 如何在不平滑任何内容的情况下放大 UIImage?

    我想以这样的方式放大 UIImage 以便用户可以非常清晰地看到 UIImage 中的像素 当我将其放入 UIImageView 并放大变换矩阵时 UIImage 会出现抗锯齿和平滑效果 有没有办法通过简单地重复每一行和每一列来获得更大的像
  • 为什么枚举需要显式转换为 int 类型?

    这样做不会丢失数据 那么为什么必须显式地将枚举转换为整数呢 如果它是隐式的 那么当您有更高级别的方法时 例如 PerformOperation OperationType Silent type where PerformOperation