最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳細了解C# 枚舉與位枚舉

 更新時間:2020年07月17日 09:32:31   作者:a說你呢  
這篇文章主要介紹了C# 枚舉與位枚舉的相關資料,文中講解非常細致,幫助大家更好的理解和學習枚舉和位枚舉,感興趣的朋友可以了解下

一、枚舉的概念:

  C# 枚舉(Enum), 枚舉類型是用于聲明一組命名的常數(shù)的基本數(shù)據(jù)類型(值類型);

二、枚舉的定義:

  聲明enum變量:

enum <enum_name> {enumeration list};

  其中enum_name 指定枚舉的類型名稱;  enumeration list 是一個用逗號分隔的標識符列表;

  枚舉列表中的每個符號代表一個整數(shù)值,一個比他前面的符號大的整數(shù)值。默認情況下,第一個枚舉符號的值是0.例如:

enum Days {Sun , Mon, tue, Fir, sat };

三、枚舉的案例,枚舉變量的用法:

using System;
namespace EnumApplication
{
 class EnumProgram
 {
   enum Days { Sun, Mon, tue, Wed, thu, Fri, sat };
   
   static void Main(string[] args)
   {
    int WeekdayStart = (int)Days.Mon;
    int WeekdayEnd = (int)Days.Fir;
    Console.WriteLine("Monday:{0}",WeekdayStart); 
    Console.WriteLine("Firday:{0}",WeekdayEnd ); 
    Console.ReadKey();
   } 
 }
}

四、Enum類:

  所有枚舉類型都隱式地繼承System.Enum 類型, System.Enum 類型是繼承自System.ValueType類型唯一不為值類型的引用類型;

五、Enum 類:

方法 描述
CompareTo 將此實例與指定對象進行比較并返回一個對二者的相對值的指示
Equals:指示此實例是否等于指定的對象;
Format 根據(jù)指定格式將指定枚舉類型的指定值轉(zhuǎn)換為其等效的字符串表示形式
GetName 在指定枚舉中檢索具有指定值的常數(shù)的名稱
GetNames 檢索指定枚舉中常數(shù)名稱的數(shù)組
GetTypeCode 返回此實例的基礎TypeCode
GetUnderlyingTye 返回指定枚舉的基礎類型
GetValues 指定枚舉中常數(shù)值的數(shù)組
HasFlag 確定當前實例中是否設置了一個或多個位域
IsDefined 返回指定枚舉中是否存在具有指定值的常數(shù)的指示
Parse 將一個或多個枚舉常數(shù)的名稱或數(shù)字值得字符串表示轉(zhuǎn)換成等效得枚舉對象,一個參數(shù)指定該操作是否不區(qū)分大小寫
TryParse 將一個或多個枚舉常數(shù)得名稱或數(shù)字值得字符串表示轉(zhuǎn)換成等效得枚舉對象,用于指示轉(zhuǎn)換是否成功得返回值

六、標志枚舉/位枚舉:

  C# 標記枚舉(Flags):枚舉類型是用于聲明一組命名得常數(shù)得基本類型數(shù)據(jù)(值類型)。

  枚舉值是互斥得。而位標記集合是一種由組合出現(xiàn)得元素形成得列表,通常設計為以“位或”運算組合新值;

  枚舉類型則通常表達一種語義相對獨立得數(shù)值集合。而以枚舉類型來實現(xiàn)位標記集合是最完美得組合,簡稱位枚舉。

七、位枚舉得定義: 

///<summary>
  /// 權(quán)限枚舉
  ///</summary>
  [Flags]
  public enum permission                     注意加了[Flags]特性后有三種寫法,
  {                                  一種是使用<<符號,
    Unknown = 0; // 也可以寫成0x00或0             第二種是0x01,                
                                    還有一種是直接寫0,1,2,4,8....,
    Create = 1<<0, // 0x01或1                 一般來說是2的n次方來表示?! ?
                                    注:<<左操作符,表示對這個數(shù)進行移位。
   Read = 1<<1, //0x02或2

    Update = 1<<2, //0x04或4

    Delete = 1<<3 //0x08或8
  }

八、位枚舉的實例:

//1、給用戶創(chuàng)建、讀取,修改和刪除的權(quán)限
var parmission = Permission.Create | parmission.Read | parmission.Update | parmission.Delete;

//2、去掉用戶的修改和刪除權(quán)限
parmission = parmission &~parmission.Update;
parmission = parmission &~parmission.Delete;

//3、給用戶加上修改的權(quán)限
parmission = parmission | parmission.Update;

//4、判斷用戶是否有創(chuàng)建的權(quán)限
var isCreate = (parmission & parmission.Create)!=0;
//或者
var isCreate = (parmission & parmission.Create)==parmission.Create;
  這時parmission枚舉的值將變成0+1+4=5,它的ToSting()將變成“parmission.Create,
  parmission.Read”,parmission.Update; 這里我們可以解釋為什么第五個值Delete是8而不能成為5。
  也就是說它的值不應該是前幾項值的復合值。一個比較簡單的方法
  就是用2的n次方來依次位每一項賦值,例如:1,2,4,8,16,32,64.......。

以上就是詳細了解C# 枚舉與位枚舉的詳細內(nèi)容,更多關于C# 枚舉與位枚舉的資料請關注腳本之家其它相關文章!

相關文章

  • C#中調(diào)用Windows API的技術(shù)要點說明

    C#中調(diào)用Windows API的技術(shù)要點說明

    本篇文章主要是對C#中調(diào)用Windows API的技術(shù)要點進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#?網(wǎng)域賬號(Domain)驗證的實現(xiàn)

    C#?網(wǎng)域賬號(Domain)驗證的實現(xiàn)

    本文主要介紹了C#?網(wǎng)域賬號(Domain)驗證的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-04-04
  • C#9新特性之增強的模式匹配

    C#9新特性之增強的模式匹配

    這篇文章主要介紹了C#9新特性之增強的模式匹配,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • C#中DropDownList動態(tài)生成的方法

    C#中DropDownList動態(tài)生成的方法

    這篇文章主要介紹了C#中DropDownList動態(tài)生成的方法,實例分析了C#中DropDownList的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • 深入分析c# 封裝和訪問修飾符

    深入分析c# 封裝和訪問修飾符

    這篇文章主要介紹了c# 封裝和訪問修飾符的相關資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C# 系統(tǒng)熱鍵注冊實現(xiàn)代碼

    C# 系統(tǒng)熱鍵注冊實現(xiàn)代碼

    簡單點說就是為程序制定快捷鍵勒。。很多軟件都帶熱鍵功能的,通過以下方式可以實現(xiàn)2個鍵或3個鍵的快捷鍵,相當之使用,具體實現(xiàn)方法看后文吧。
    2009-02-02
  • C#中委托和事件的區(qū)別詳解

    C#中委托和事件的區(qū)別詳解

    C# 中的委托(Delegate)類似于 C 或 C++ 中函數(shù)的指針。事件是在委托類型變量前加上 event 關鍵字,其本質(zhì)是用來對委托類型的變量進行封裝,類似于類的屬性對字段的封裝。本文就來聊聊C#中委托和事件的區(qū)別,感興趣的可以了解一下
    2022-11-11
  • 圖文詳解C#中的協(xié)變與逆變

    圖文詳解C#中的協(xié)變與逆變

    “協(xié)變”是指能夠使用與原始指定的派生類型相比,派生程度更大的類型,“逆變”則是指能夠使用派生程度更小的類型,這篇文章主要給大家介紹了關于C#中協(xié)變與逆變的相關資料,需要的朋友可以參考下
    2022-02-02
  • C#中自定義高精度Timer定時器的實例教程

    C#中自定義高精度Timer定時器的實例教程

    這篇文章主要介紹了C#中自定義高精度Timer定時器的實例教程,多線程的Timer編寫需要注意線程安全的問題,需要的朋友可以參考下
    2016-04-04
  • 如何使用C#修改本地Windows系統(tǒng)時間

    如何使用C#修改本地Windows系統(tǒng)時間

    這篇文章主要介紹了如何使用C#修改本地Windows系統(tǒng)時間,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01

最新評論

奈曼旗| 镇康县| 梁河县| 辽阳市| 海盐县| 昌黎县| 博客| 柏乡县| 黑龙江省| 罗田县| 白银市| 吉木乃县| 外汇| 太原市| 华阴市| 株洲市| 洪湖市| 安义县| 清苑县| 双峰县| 奈曼旗| 宣汉县| 抚州市| 蚌埠市| 左权县| 平塘县| 阿鲁科尔沁旗| 海城市| 南川市| 枣阳市| 盐山县| 桐柏县| 偏关县| 屏山县| 汽车| 射阳县| 桃源县| 易门县| 景泰县| 辽阳市| 依兰县|