.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 ...
随机推荐
- 算法笔记_061:蓝桥杯练习 字串统计(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然 ...
- Java提高合集(转载)
转载自:http://www.cnblogs.com/pony1223/p/7643842.html Java提高十五:容器元素比较Comparable&Comparator深入分析 JAVA ...
- struts result动态结果集 带参数的结果集
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &qu ...
- 用MyEclipse10.0远程连接Mysql数据库服务器
说明:本文档所有的操作均在满足以下条件的情况下操作, A.远程Linux服务器已经安装好MySQL数据库 B.本地电脑可以ping通远程服务器 C.已经成功安装了Myeclipse 一.下载mysql ...
- 使用jq Deferred防止代码被回调函数分解分解的支离破碎
//移动人物 function moveInterval(stopPosotion){ var dtd = $.Deferred(); // 生成Deferred对象 var yidong= wind ...
- 转载 :sql server分区 http://blog.itpub.net/27099995/viewspace-1081158/
转载:http://blog.itpub.net/27099995/viewspace-1081158/ 在 sql server 2005 之前不提供分区表,但可以用其他方式建立“分区表”,sql ...
- Linux文件压缩和打包
gzip压缩工具 1.将etc下的所有conf文件查看后循环追加到1.txt文件中 [root@bogon gzip]# find /etc/ -type f -name '*.conf' -exec ...
- Lintcode---实现 Trie
实现一个 Trie,包含 insert, search, 和 startsWith 这三个方法. 注意事项 你可以假设所有的输入都是小写字母a-z. 您在真实的面试中是否遇到过这个题? Yes 样例 ...
- OpenJudge百炼习题解答(C++)--题4074:积水量
题: 总时间限制: 1000ms 内存限制:65536kB 描写叙述 凹凸不平的地面每当下雨的时候总会积水.如果地面是一维的.每一块宽度都为1,高度是非负整数.那么能够用一个数组来表达一块 ...
- CentOS下yum常用命令
1.自动搜索最快镜像插件:yum install yum-fastestmirror 2.更换163的源. 首先:备份/etc/yum.repos.d/CentOS-Base.repomv /etc/ ...