.NET中的枚举用法浅析
本文简单分析了.NET中的枚举用法。分享给大家供大家参考。具体分析如下:
我理解的枚举就是编程中约定的一个“可选值”;例如QQ的在线状态,分别有 在线,Q我吧,隐身,忙碌等等。。。我觉得这就是一个枚举。
1.普通枚举
1) 实例
public enum UserState
{
QMe,
OnLine,
OffLine //后面省略
}
ps:像上边的枚举,可以单独写在一个CS文件中。
2)普通枚举的性质
1. 互斥性
2. 每一个值都有一个数值来表示
3. 枚举在编译时,就已经用数值来表示了。
3)字符串转换成枚举
(UserState)Enum.Parse(typeof(UserState),"Red") ;
将字符串型转化为(Enum)枚举类型。
例如:现在有个字符串sString,一个枚举EnumName,希望把sString类型转换成EnumName类型格式如下:
(EnumName)EnumName.Parse(typeof(EnumName),sString)
实例:有一个下拉式列表,通过选择某项,将选择的SelectedValue转变成枚举类型
<asp:DropDownList ID="ddlStatus" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStatus_SelectedIndexChanged">
<asp:ListItem Value="1" Selected="True">保密</asp:ListItem>
<asp:ListItem Value="2">男</asp:ListItem>
<asp:ListItem Value="3">女</asp:ListItem>
</asp:DropDownList>
枚举类型:public enum Sex{ 保密= 1, 男 = 2, 女 = 3 };
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class EnumTest : System.Web.UI.Page
{
public enum Sex { 保密=1,男=2,女=3}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ddlSex_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write((Sex)Enum.Parse(typeof(Sex), ddlSex.SelectedValue));
lblMeg.Text = "ddlSex.SelectedValue的值为:" + ddlSex.SelectedValue.ToString()+"/n";
lblMeg.Text += Convert.ToString(Enum.Parse(typeof(Sex), ddlSex.SelectedValue));
}
}
Result:下拉式ddlSex.SelectedValue的值为1时,显示保密。
4)枚举转换成数值、字符串
(int)myColor.Red;
myColor.Red.ToString();
2.标识枚举
但一个事物具有多个属性时,普通枚举就不够用了。
普通枚举是互斥的,标识而枚举是可以组合的。
1)定义
//使用以后结果是Tostring()的,而不是数字的。
public enum GoodMan
{
高=1,
富=2,
帅=4 //这里必须是2的N次方,切不能重复。
}
2)状态组合(或运算)
GoodMan winter = GoodMan.高| GoodMan.富| GoodMan.帅;
3)判定winter中是否具有某个枚举值(与运算)
if(winter&GoodMan.高==GoodMan.高)
.NET中的枚举用法浅析的更多相关文章
- Scala进阶之路-Scala中的枚举用法案例展示
Scala进阶之路-Scala中的枚举用法案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的枚举值和Java中的枚举值有点差别,不过使用起来也都差大同小异,我这 ...
- 浅谈在Java开发中的枚举的作用和用法
枚举(enum),是指一个经过排序的.被打包成一个单一实体的项列表.一个枚举的实例可以使用枚举项列表中任意单一项的值.枚举在各个语言当中都有着广泛的应用,通常用来表示诸如颜色.方式.类别.状态等等数目 ...
- Python中int()函数的用法浅析
int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builti ...
- Python 中的枚举类型~转
Python 中的枚举类型 摘要: 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表 ...
- 项目中Enum枚举的使用
在.NET中,枚举一般有两种常见用法,一是表示唯一的元素序列,比如表示订单状态(未提交,待处理,处理中...).另外一种是表示多种组合的状态,比如表示权限,因为可同时有多个不同权限. 基本用法 这里拿 ...
- Java中Enum枚举的使用
三种不同的用法 注意项: 1.在switch中使用枚举能使代码的可读性更强. 2.如果要自定义方法,那么必须在enum实例序列的最后添加分号.而且Java要求必须先定义enum实例. 3.所有 ...
- ViewSwitcher用法浅析
如果理解了ViewPager的使用方法,使用ViewSwitcher就方便多了.和ViewFlipper一样,ViewSwitcher也是ViewAnimator的子类,并且只能包含两个子视图,每次展 ...
- c#中[Flags] 枚举类型定义问题_百度知道
[Flags]的微软解释是“指示可以将枚举作为位域(即一组标志)处理.”其实就是在编写枚举类型时,上面附上Flags特性后,用该枚举变量是既可以象整数一样进行按位的“|”或者按位的“&”操作了 ...
- 在Android中使用枚举注解而不是枚举
Enums often require more than twice as much memory as static constants. You should strictly avoid us ...
随机推荐
- python的基本知识点
一.数据类型 1.整数2.浮点数3.字符串4.布尔值:True/False5.空值:None 二.变量 变量名必须是大小写英文.数字和_的组合,且不能以数字开头 三.常量 全部大写的变量名表示常量,p ...
- Spring IOC、对象依赖关系
Spring IOC.对象依赖关系 2016-09-21 01:36 414人阅读 评论(0) 收藏 举报 本文章已收录于: 版权声明:本文为博主原创文章,未经博主允许不得转载. 引入 Strut ...
- 更轻便的markdown 编辑器Typora
更轻便的markdown 编辑器 Typora 所见即所得的键入方式 https://typora.io 文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论.
- 2 自己编写:AppDelegate,CCApplication,CCApplicationProtocol
1 CCApplicationProtocol.h /* * CCApplicationProtocol.h * * Created on: 2014年10月19日 * Author: t ...
- linuxubuntu升级.net core版本到2.0
直接看这里 https://www.microsoft.com/net/core#linuxubuntu
- Android与JS进行交互传文件路径
webview+h5这种混合开发最近很火,其中最重要的大概就是java代码和js的交互了,刚接触这东西两天,写写收获. 新建一个assets文件夹,要与res这个文件夹同级,其中存放web项目. 先看 ...
- 测试-一个unity的编译bug,初始化器
.net C#下测试: public class Class1 { public bool toggle1 = true; public bool toggle2; } 一个结构类Class1,对里面 ...
- FPGA开发流程1(详述每一环节的物理含义和实现目标)
要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...
- [转]手工释放linux内存——/proc/sys/vm/drop_caches
另一篇:http://www.linuxfly.org/post/320/ 1.清理前内存使用情况 free -m 2.开始清理 echo 1 > /proc/sys/vm/drop_ca ...
- makefile之foreach函数
#$(foreach <var>,<list>,<text>) #把参数<list>中的单词逐一取出放到参数<var>所指定的变量中,然后再 ...