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

Enum一点使用总结

枚举很有用, 总结一下它的两个重要操作和用途, 如下:

1.字符串转为Enum类型:

2.枚举作为标志

 

参考代码:

    public enum MaleRoleEnum { Male=1, Husband=2, Father=3, Sun=4, Manager=5 }
    class Program
    {
        static void Main(string[] args)
        {
            MaleRoleEnum lzd = MaleRoleEnum.Male | MaleRoleEnum.Father;            
            Console.WriteLine((int)lzd);

            Console.WriteLine(Enum.IsDefined(typeof(MaleRoleEnum), "Malse"));

 

            MaleRoleEnum mre = (MaleRoleEnum)Enum.Parse(typeof(MaleRoleEnum), "Mals");  //will throw Exception: Requested value 'Mals' was not found.
            Console.WriteLine(mre);

 

            MaleRoleEnum mre1;
            if (Enum.TryParse<MaleRoleEnum>("Males", out mre1)) //使用Ref的时候必须要先赋值,而out并不需要。
            {
                Console.WriteLine(mre1);
            }
            else
            {
                Console.WriteLine("转换失败");
            }      }
    }


启示1:

用Enum.Parse或Enum.TryParse方法, 用Parse时如果用未定义的枚举值转换则会报异常, 所以, 如果不用TryParse就要用trycatch捕捉异常;

 

启示2:

因为某些枚举可以重复复合, 可以用&位与和|位或.

推荐资料: C#基础:ref和out的区别
http://www.cnblogs.com/gjahead/archive/2008/02/28/1084871.html

在C#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。

 

位运算的效率及应用

http://space.flash8.net/space/?18713/viewspace-352330.html

 

转载于:https://www.cnblogs.com/liuzhendong/archive/2012/01/21/2328690.html

相关文章:

  • 路由器相关参数及设置
  • 祝网友们龙年快乐!
  • CSS以图换字的9种方法
  • 部署Oracle 11.2.0.3 RAC (二)
  • [WinForm]DataGridView通过代码新增行问题
  • linux下配置SS5(SOCK5)代理服务
  • Spring.net 学习笔记之ASP.NET底层架构
  • stagefright框架 Video Playback的流程
  • EF架构~LinqToEntity里实现left join的一对一与一对多
  • Linux一般由四个主要部分组成
  • sshfs
  • Trie树(字典树)
  • MYSQL 的一些基本操作
  • Alpine上安装Docker引擎
  • glulookat函数
  • 《深入 React 技术栈》
  • CSS 提示工具(Tooltip)
  • Docker入门(二) - Dockerfile
  • Docker下部署自己的LNMP工作环境
  • express.js的介绍及使用
  • Invalidate和postInvalidate的区别
  • Java Agent 学习笔记
  • java 多线程基础, 我觉得还是有必要看看的
  • mac修复ab及siege安装
  • mysql 数据库四种事务隔离级别
  • PHP 7 修改了什么呢 -- 2
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • React-redux的原理以及使用
  • ViewService——一种保证客户端与服务端同步的方法
  • - 概述 - 《设计模式(极简c++版)》
  • 将回调地狱按在地上摩擦的Promise
  • 看域名解析域名安全对SEO的影响
  • 浅谈web中前端模板引擎的使用
  • 三栏布局总结
  • 使用parted解决大于2T的磁盘分区
  • 首页查询功能的一次实现过程
  • 系统认识JavaScript正则表达式
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # 飞书APP集成平台-数字化落地
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #{} 和 ${}区别
  • #HarmonyOS:基础语法
  • $NOIp2018$劝退记
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (规划)24届春招和25届暑假实习路线准备规划
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (三) diretfbrc详解
  • (十三)Maven插件解析运行机制
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu