.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 ...
随机推荐
- JS动画公式
// 效果: // Linear:无缓动效果 // Quadratic:二次方的缓动(t^2) // Cubic:三次方的缓动(t^3) // Quartic:四次方的缓动(t^4) // Quint ...
- 百度地图JS--2
转载请注明出处 本文为原创 作者:injuer 严禁用于商业用途,仅学习交流 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transiti ...
- ANDROID颜色设置
Android中的颜色设置 1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如: public static final class color { public static ...
- C++11 std::async 包装实体店::packaged_task
更好的方式 C++11中提供了操作多线程的高层次特性. std::packaged_task 包装的是一个异步操作,相当与外包任务,好比我大阿里把电话客服外包给某某公司. std::future 提供 ...
- Java的内存机制(转)
0.参考资料: http://www.j2megame.org/index.php/content/view/2246/125.html 1.Java的内存机制 Java 把内存划分成两种:一种是栈内 ...
- Lr_debug_message,Lr_output_message,Lr_error_message,Lrd_stmt,Lrd_fetch
今天在群里,问了 Lr_debug_message,Lr_output_message,Lr_error_message,Lrd_stmt,Lrd_fetch.下 面我整理了下Lr_debug_mes ...
- Java环境变量设置辅助工具
安装完JDK之后,很容易忘了设置系统的环境变.最近发现一个设置JDK的小工具,非常简单,推荐给大家: 下载地址:http://files.cnblogs.com/eastson/JavaPathSet ...
- 基于redis的简易分布式爬虫框架
代码地址如下:http://www.demodashi.com/demo/13338.html 开发环境 Python 3.6 Requests Redis 3.2.100 Pycharm(非必需,但 ...
- iOS百度地图
一.百度地图sdk具体使用过程,參考以下的博客(我感觉非常具体.并且有问题能够找楼主.他会给解答,感谢好心人-): 怎样使用百度地图sdk,及相关demo下载 上述博客给的demo,是真机执行的(百度 ...
- MySQL-sqlmap常用参数的中文解释
#HiRoot's BlogOptions(选项):--version 显示程序的版本号并退出-h, --help 显示此帮助消息并退出-v VERBOSE 详细级别:0-6(默认为1) Target ...