枚举和使用带有常量的静态类有什么区别?

2024-01-15

这两项之间的性能影响是什么?我最近在野外看到了静态类,但我不知道如何理解它。

public enum SomeEnum
{
   One = 1,
   Two,
   Three
}

public static class SomeClass
{
   public static readonly int One = 1;
   public static readonly int Two = 2;
   public static readonly int Three = 3;
}

区别在于类型安全。假设您有两个这样的枚举。您将如何区分:

void SomeMethod(int x, int y)

// Compiles, but won't do what you want.
SomeMethod(SomeOtherClass.Xyz, SomeClass.One);

vs

void SomeMethod(SomeEnum x, SomeOtherEnum y)

// Compile-time error
SomeMethod(SomeOtherEnum.Xyz, SomeEnum.One)

So 到处你有一个表达式想要成为一组特定值中的一个,你可以让读者都清楚and如果您使用枚举,编译器会告诉您您对哪一组值感兴趣。只有整数...没那么多。

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

枚举和使用带有常量的静态类有什么区别? 的相关文章

随机推荐

  • Javafx:没有工具包发现异常

    我已在 intellij 插件中添加了 javafx 库 以添加 jfxwebview 但是当我尝试创建 JFXPanel 对象时 JFXPanle jfxpanel new JFXPanel 它给出了以下异常 No toolkit fou
  • 字典中的特征数量

    我正在努力从这样的 pickle 文件加载数据集 Load the dictionary containing the dataset with open final project dataset pkl r as data file d
  • Marklogic 中的 JavaScript 多语句事务

    我想在 marklogic 中的服务器端 JavaScript 中编写多语句事务 我想要实现的是 执行更新事务 然后编写查询语句来查询更新的文档并确认更新在事务中可见 最后进行回滚 通过进行回滚 我想确认事务内进行的更新在事务外不可见 而在
  • 如何获取函数参数列表(以便我可以删除函数)

    我想让 SQL 删除 PostgreSQL 中的一个函数 我写的DROP FUNCTION以及从中获取函数名称pg proc 那不是问题 但是 如果我保留空白参数 它不会删除该函数 我检查了手册 里面写着我必须识别该函数及其参数才能删除它
  • 带有字母范围的 PATINDEX 排除变音符号(重音字符)

    我试图弄清楚如何使用 patindex 来查找一系列字母字符 但排除重音字符 如果我进行直接搜索 使用默认排序 不敏感 就可以了 但是 当我搜索一系列字母时 它将匹配重音字符 SELECT IIF U COLLATE Latin1 Gene
  • C#变量到sql命令

    string alpha this is text string sql INSERT INTO dokimastikospinakas pliroforia VALUES alpha 将 C 变量传递到 sql 命令的正确语法是什么 这只
  • SQL 中的变量“IN”表达式[重复]

    这个问题在这里已经有答案了 可能的重复 SQL 多个参数值 https stackoverflow com questions 694536 sql multiple parameter values SQL Server 2008 将 A
  • require_once(Google/Auth/AssertionCredentials.php):无法打开流:没有这样的文件或目录

    我正在尝试做一个非常简单的事情 require once vendor google src Google Client php require once vendor google src Google Service Plus php
  • 如何将自定义 HTML 类名称添加到管理屏幕子菜单项?

    这是下面的这些子菜单项Posts menu 我检查了代码 发现它的标记是这样的 ul class wp submenu wp submenu wrap li class wp submenu head Posts li li class w
  • 必须创建一个matlab计数器[重复]

    这个问题在这里已经有答案了 Q 从 0 limit 1 创建一个 计数器 例如 如果您选择 3 它将显示 0 1 2 计数器的长度不是在程序中确定的 应该在运行时确定 并且输入可以彼此不同 不太确定你的意思 但是 for i 0 limit
  • 带有渐变的CSS3动画[重复]

    这个问题在这里已经有答案了 难道真的没有办法用 CSS 来制作渐变背景的动画吗 就像是 webkit keyframes pulse 0 background webkit gradient linear left top left bot
  • Android 虚拟设备 - Armeabi-v7a 与 x86_64

    我想制作自己的 Android 应用程序 我正在使用 Ubuntu 64 位和 IntelliJ 在虚拟设备配置中 它要求我选择系统映像 所有选项都有一个Download另外 这意味着我还没有下载任何系统映像 有 3 个选项可供选择Loll
  • grep 排除多个字符串

    我正在尝试使用查看日志文件tail f并想要排除包含以下字符串的所有行 Nopaging the limit is and keyword to remove is 我可以像这样排除一个字符串 tail f admin log grep v
  • 如何在 Cloud Machine Learning Engine 上获取模型的 C# 在线预测?

    我已成功部署在 Cloud ML Engine 上的模型上 并验证它正在使用gcloud ml engine models predict依照指示说明 https cloud google com ml engine docs how to
  • 在bash中将字符插入字符串?

    我需要转动绳子 125959 into 12 59 59 显然 字符串是时间 所以正则表达式在这里不太好 time 125959 echo time 0 2 time 2 2 time 4 2
  • 并发程序中的 I/O

    我正在开发一个并发程序 它有两个线程 其中一个监听来自服务器的消息 另一个线程向服务器发送消息 我需要从用户获取命令 使用 cin 并同时显示来自服务器的消息 我该如何处理这种情况 问题是 如果我在收到消息时读取用户的命令 则用户的输入会被
  • Mesa + Linux:gl.h 不包含现代 OpenGL

    这是我目前使用的环境 Eclipse Luna Linux Mint Rebecca 上的 C 11 当我尝试使用现代 OpenGL 例如 VAO 或 VBO 时 我收到编译器错误 导致方法无法解析 例如 GLuint VaoID GLui
  • F# 中 Control.Observable 和 Control.Event 模块之间有哪些相似/差异?

    F 至少在 Visual Studio 2012 中 两者兼而有之Control Observable http msdn microsoft com en us library ee370313 v vs 110 aspx and Con
  • 带有scope.$watch的Angular指令强制验证其他字段

    我写了一个match model当用户在我的应用程序中注册时 我用于密码 密码重复过程的角度指令 密码重复字段具有此特定属性 可根据原始密码字段验证此字段 我的指令有scope watch出于优化目的 因为我不必每次验证重复密码范围属性时都
  • 枚举和使用带有常量的静态类有什么区别?

    这两项之间的性能影响是什么 我最近在野外看到了静态类 但我不知道如何理解它 public enum SomeEnum One 1 Two Three public static class SomeClass public static r