第十五章枚舉類型和位標誌

  • 枚舉是值類型,不可以定義字段屬性方法等。
  • 枚舉和字符串相互轉化:
  •       public enum ReportType
            {
                Day,
                Week,
                Month,
                Quarter,
                Year
            }
    
            private static void TestEnum()
            {
                ReportType day = ReportType.Day;
                string daystr = "Day";
                int dayInt = 0;
                //1.枚舉轉字符串
                var enum_to_str = day.ToString();
                var enum_to_str2 = Enum.GetName(typeof(ReportType), ReportType.Day);//效率高
                //2.枚舉轉值
                int enum_to_int = day.GetHashCode();
                int enum_to_int2 = (int)day;
                int enum_to_int3 = Convert.ToInt32(day);
                //3.字符串轉枚舉
                ReportType day_temp = (ReportType)Enum.Parse(typeof(ReportType), daystr);
                //4.枚舉字符串轉值
                int day_int = (int)(ReportType)Enum.Parse(typeof(ReportType), daystr);
                //5.值轉枚舉
                ReportType int_to_enum = (ReportType)dayInt;
                ReportType int_to_enum2 = (ReportType)Enum.ToObject(typeof(ReportType), dayInt);
                //6.值轉字符串
                string int_to_str = Enum.GetName(typeof(ReportType), dayInt);
                ReportType reporttype= ReportType.Month;
    
                /******注意點*****/
                string obj="155";
                if (Enum.TryParse(obj, out reporttype))//obj 是數字時候未定義枚舉時候的轉化是成功的,必須走67行的判定 
                {
                    if (Enum.IsDefined(typeof(ReportType), reporttype))//IsDefined內部用了反射
                    {
                        Console.WriteLine(reporttype.ToString());
                    }
                    else
                    {
                        Console.WriteLine("非枚舉成員");
                    }
                }
                /******注意點*****/
    
            }

     4.其他的不多做介紹,注重實戰

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章