枚举很有用, 总结一下它的两个重要操作和用途, 如下:
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);启示1: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("转换失败"); } } }
用Enum.Parse或Enum.TryParse方法, 用Parse时如果用未定义的枚举值转换则会报异常, 所以, 如果不用TryParse就要用trycatch捕捉异常;
启示2:
因为某些枚举可以重复复合, 可以用&位与和|位或.
推荐资料: C#基础:ref和out的区别在C#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。
位运算的效率及应用