当前位置: 首页 > news >正文

C#枚举-避免不合理赋值

什么是枚举?

一年只能有12个月,每个星期只能从星期一到星期日,不能有别的日子,这些都是固定的值,不能随意变动。C#中处理这些数据就可以采用枚举。

枚举是一组已经命名的数值常量,用来定义一组具有特定值的数据类型,枚举的定义方法如下:

<访问修饰符> enum 枚举名称{枚举对象}

public enum DayWeek

{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
}

这段代码定义了表示一周中包括星期几的枚举。enum是声明枚举的关键字,DayWeek是枚举的名称,大括号中的数据是枚举对象,枚举对象之间用“,”隔开。

默认情况下每个枚举都有相应的枚举值,编号顺序从0开始递增,Sunday的值是0,Tuesday的值为2,Saturday的值是6。也可以通过定义改变枚举值。

枚举值的定义:

public enum DayWeek{

Sunday=7,
Monday=1,
Tuesday=2,
Wednesday=3,
Thurday=4,
Friday=5,
Saturday=6
}

说明:这种方法显式改变了枚举的值,但通常不采用这种方法,除非程序有特殊要求。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example_Enum
{
    class EnumTest
    {
        //定义枚举
        public enum DayWeek
        {
            Sunday=7,
            Monday=1,
            Tuesday=2,
            Wednesday=3,
            Thursday=4,
            Friday=5,
            Saturday=6
        }
        static void Main(string[] args)
        {
            Console.WriteLine("{0}和{1}是休息时间",DayWeek.Saturday,DayWeek.Sunday);
            Console.WriteLine("{0}和{1}是开会的日子",DayWeek.Tuesday,DayWeek.Wednesday);
            Console.WriteLine("{0}的值是{1}",DayWeek.Wednesday,Convert.ToInt32(DayWeek.Wednesday));
            Console.ReadKey();

        }
    }
}

如何访问枚举元素?

即“枚举名称.枚举元素”获取枚举元素,再将枚举元素转换为整型即可。Convert.ToInt30()的作用就是把括号中的数据转换为整型数据。

注意:枚举属于值类型,枚举不能定义任何属性和方法,不能实现接口。

相关文章:

  • python3基础2--变量-字符编码-缩进-注释-用户输入-模块初识
  • 【强烈推荐】Kindle3下使用的提供加密功能的记事本,可以输入中文 -- KindleNote...
  • PTGAN:针对行人重识别的生成对抗网络 | PaperDaily #36
  • SqlParameter的作用与用法
  • vue官方推荐的环境
  • managedwifi.codeplex.com
  • 微信小程序之 Swiper(轮播图)
  • 方丈被害子女有没有权利继承遗产?
  • js数组之filter
  • 故障处理记录--nginx反向代理显示不了部分图片
  • TCP通信粘包问题分析和解决
  • javascript笔记:自己写一个jqgrid框架(二)
  • eclipse编译器显示的文件名乱码,活动标签乱码(已解决)
  • Silverlight/Windows8/WPF/WP7/HTML5周学习导读(6月25日-7月1日)
  • 公式编辑器打的公式能改变颜色吗?
  • 【React系列】如何构建React应用程序
  • Android交互
  • ES学习笔记(12)--Symbol
  • Github访问慢解决办法
  • laravel5.5 视图共享数据
  • mysql innodb 索引使用指南
  • MySQL-事务管理(基础)
  • node 版本过低
  • 动态规划入门(以爬楼梯为例)
  • 全栈开发——Linux
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 小试R空间处理新库sf
  • 做一名精致的JavaScripter 01:JavaScript简介
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 交换综合实验一
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #AngularJS#$sce.trustAsResourceUrl
  • #define 用法
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二)linux使用docker容器运行mysql
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .Net 6.0 处理跨域的方式
  • .net MVC中使用angularJs刷新页面数据列表
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • [14]内置对象
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [BUG]vscode插件live server无法自动打开浏览器
  • [codevs 1515]跳 【解题报告】
  • [CSS]浮动
  • [English]英语积累本
  • [IOI2018] werewolf 狼人
  • [Java] IDEA Scala环境搭建