NET问答: 枚举 和 常量 在使用时该怎么抉择?

咨询区

  • Draco

我了解enum有一段时间了,不过我发现它和 常量 特别像,我现在特别想知道什么时候该用 enum 而不是 const,反之亦然,以及使用 enum 的一些优点。

回答区

  • Andrew Barrett

如果你想定义一组值,可优先选择 enum,颜色值就是一个很好的例子。


public enum Colour
{White,Red,Blue
}

或者你想定义一些复合值,比如下面这样。


[FlagsAttribute]
enum DistributedChannel
{None = 0,Transacted = 1,Queued = 2,Encrypted = 4,Persisted = 16,FaultTolerant = Transacted | Queued | Persisted
}

常量一般都是一个值,比如说 PI

  • Robert MacLean

  1. 常量 是一个定义好之后不可再修改的语言特性,而 枚举 只是一个特定类型。

  2. const 可以定义成任何类型,但 enum 类型就是一个 enum。

  3. enum 常出现在有一组可选项,并且想提高代码阅读性的地方,比如:trace级别的:0,1,2 或 error,warning,info。

  4. enum 还可以用于位运算,比如:FontStyle.Bold | FontStyle.Italic 。

点评区

两位大佬已经总结的比较全面了,我在实践中将那些单一的不变值定义为const,比如一些redis的key:RedisKey.RpcList or Redis.ChannelList , enum 一般还是在一些组合值中使用,用于提高代码可读性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java sorted_Java记录 -59- SortedSet

SortedSet是一个接口,其继承了Set,而TreeSet实现了SortedSet。public interface SortedSet extends Set进一步提供关于元素的总体排序 的 Set。这些元素使用其自然顺序进行排序,或者根据通常在创建有序 set 时提供的 Comparator 进行排序。该…

转:超越设计模

转:http://www.ibm.com/developerworks/cn/java/j-lo-beyondpattern/刘 旭进, 软件开发工程师, IBM 中国软件开发中心简介: 可复用面向对象软件的基础 -- 设计模式,以其可复用的设计初衷、精巧的逻辑思维被广大面向对象程序设计所追捧。但不少…

为什么中国天才都往美国跑,可美国人的数学那么槽糕

中国天才少年尹希,17岁时收到哈佛大学博士offer,31岁成为哈佛最年轻华人正教授。中国年轻科学家、未来科学大奖数学与计算机奖获得者许晨阳,于2018年加入美国麻省理工,选择去世界顶尖的地方看看。22岁中国“神童”曹原&#xff0c…

2021年,推荐你使用.NET 5的7大原因

在.NET Core的早期版本中,每个版本都发布了重要的性能改进,从.NET Core 2.0到.NET Core 2.1到.NET Core 3.0的每一次版本升级,都有着大量的性能优化和提升,而随着大一统的.NET 5的发布,我发现.NET 5实现了更多的性能改…

java util map,我应该如何命名java.util.Map?

I have a java.util.Map that maps from a logical name to a set of parameters to use with that name.Map howShouldINameThee ...;What is the best name for this map?Should I go simple and just call this parameters or parametersMap?Do I include information ab…

如何使用VIM的Help

很多时候在用到vim的命令的时候,都会去网上搜索,殊不知,如果熟练使用VIM的help,可以达到事半功倍的效果。 下面介绍如何使用VIM的help: 1. 在vim的一般模式中输入:help可以进入vim的help界面 这里面注…

可编程智能小车,100种玩法,从3岁玩到15岁,培养孩子“最强大脑”

▲数据汪特别推荐点击上图进入玩酷屋毫无疑问,数学、科学和计算机科学是解决21世纪现代问题的三大支柱。当现在各式各样的兴趣班和教育辅导班快要呈现饱和状态时,一种新兴的教育活动正如火如荼地进行着那就是少儿编程。少儿编程奇迹般的红火,…

php 数组什么情况下是空的?

转载于:https://www.cnblogs.com/persist/p/3183819.html

Java千万数据导入mysql_java之5分钟插入千万条数据

虽说不一定5分钟就插入完毕,因为取决去所插入的字段,如果字段过多会稍微慢点,但不至于太慢。10分钟内基本能看到结果。之前我尝试用多线程来实现数据插入(百万条数据),半个多小时才二十多万条数据。线程池数据插入核心代码:Execut…

WPF实现时间轴(仿Gitee)

WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织“ 前言,接着上一篇圆形菜单。”欢迎转发、分享、点赞、在看,谢谢~。 01—效果预览效果预览(更多效果请下载源码体验):02—代码如下一、…

java如何用键盘输入_java中如何从键盘输入(附代码)

一、java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。相关java视频教程推荐:java实例程序:视频教程1、利用 Scanner 实现从键盘读入integer或float 型数据//import jav…

.text 0.958之间居的中文汉化下载

.text 0.958之间居的中文汉化下载 http://218.19.140.219/uploadfile/040426192172.rar posted on 2004-06-14 20:19 浙林龙哥 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/huqingyu/archive/2004/06/14/15666.html

JS partial-application

为什么80%的码农都做不了架构师?>>> /* Title: Partial applicationDescription: the process of fixing a number of arguments to a function, producing another function of smaller arity */var partialAny (function(aps) {// This function wil…

每日一笑 | 我写了一段代码,为什么不能运行呢?

全世界只有3.14 % 的人关注了数据与算法之美(图源网络,侵权删)

使用IQueryable扩展方法实现复杂查询条件

问题在业务开发中&#xff0c;经常要处理比较复杂的查询条件&#xff0c;如下图&#xff1a;如果任一输入有值&#xff0c;则必须作为查询条件之一。示例代码如下&#xff1a;IQueryable<User> query repository.GetAll();if(name!null) {query query.Where(p>p.Name…

java字符串拼接例子_Java详解【String】+【StringBuilder vs StringBuffer】+【字符串拼接】...

String详解注意区分对象和对象的引用首先来看一下我在jdk中找到的String源代码&#xff0c;这里只截取开头的小小一部分public final class Stringimplements java.io.Serializable, Comparable, CharSequence {/** The value is used for character storage. */private final …

阿里日均纳税超1.4亿;AI换脸骗过美侦查;日本民众哄抢令和报纸;辟谣教学楼发现大量金矿;上海拨通首个5G通话;这就是今日大新闻...

今天是4月2日农历二月廿七今天星期二下面是今天的大新闻阿里巴巴日均纳税超1.4亿&#xff08;IT168&#xff09;4月1日&#xff0c;阿里巴巴在“2020财年首日”发布消息称&#xff1a;2018全年&#xff0c;阿里巴巴集团和蚂蚁金服集团总计向国家纳税516亿元&#xff0c;同比增长…

大家好!

在博客园申请帐号已经有好长时间了&#xff0c;可是一直也没有写点什么&#xff0c;可能是太忙了吧&#xff08;其实是懒&#xff09;&#xff01;以后我会多写些文字&#xff0c;毕竟这是一件好事。转载于:https://www.cnblogs.com/hubin/archive/2004/08/16/33928.html

腾讯大湘网某处csrf(city.hn.qq.com)可投诉刷留言

触发点&#xff1a; http://city.hn.qq.com http://city.hn.qq.com/auto/cshop&mbbs&id668 POST /msgboard/message.php HTTP/1.1 Host: c1.city.qq.com Connection: keep-alive Content-Length: 201 Cache-Control: max-age0 Accept: text/html,application/xhtmlxml,…

c#:细说时区、DateTime和DateTimeOffset在国际化中的应用

先说下结论&#xff1a;如果系统不考虑全球化的话&#xff0c;那么我们不用考虑时区的问题&#xff0c;因为我们可以认为中国境内的计算机全部用的是北京时间。1. 时区的来源和划分地球自转一圈是360度&#xff0c;共24小时&#xff0c;所以1小时15度&#xff0c;即&#xff1a…