枚举很有用, 总结一下它的两个重要操作和用途, 如下:
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。
位运算的效率及应用