1. 程式人生 > >C# 列舉簡析

C# 列舉簡析

C# 列舉學習需要注意: System.Enum 型別是所有列舉型別的抽象基類(它是一種與列舉型別的基礎型別不同的獨特型別),並且從 System.Enum 繼承的成員在任何列舉型別中都可用。存在從任何列舉型別到System.Enum 的裝箱轉換,並且存在從 System.Enum 到任何列舉型別的取消裝箱轉換。System.Enum 本身不是列舉型別。相反,它是一個類型別,所有列舉型別都是從它派生的。型別 System.Enum 從型別 System.ValueType派生,而後者又從型別 object 派生。在執行時,型別 System.Enum 的值可以是 null 或是對任何列舉型別的裝了箱的值的引用。
C# 列舉的優點: 列舉可以使程式碼更易於維護,有助於確保給變數指定合法的、期望的值。 列舉使程式碼更清晰,允許用描述性的名稱表示整數值,而不是用含義模糊的數來表示。 列舉使程式碼更易於鍵入。在給列舉型別的例項賦值時,VS.NET IDE會通過IntelliSense彈出一個包含可接受值的列表框,減少了按鍵次數,並能夠讓我們回憶起可能的值 C# 列舉的常用方法: Enum.Parse()方法 這個方法帶3個引數,第一個引數是要使用的列舉型別。其語法是關鍵字typeof後跟放在括號中的列舉類名。typeof運算子將在第5章詳細論述。第二個引數是要轉換的字串,第三個引數是一個bool,指定在進行轉換時是否忽略大小寫,最後,注意Enum.Parse()方法實際上返回一個物件引用—— 我們需要把這個字串顯式轉換為需要的列舉型別(這是一個取消裝箱操作的例子)
Enum.GetName()方法 獲得列舉某一個值的對應名稱 Enum.GetValues()方法 得到列舉的所有的值 Enum.GetNames(typeof(列舉名稱))獲取列舉所有的名稱 foreach(string temp in Enum.GetNames(typeof(UIName))) for (int i = 0; i < Enum.GetNames(typeof(UIName)).Length; i++) //簡例
using System;
public class ParseTest
{
    enum Colors
    {
        Red = 1,
        Green = 2,
        Blue = 4,
        Yellow = 8
    };

    public static void Main()
    {
       
        foreach (string colorName in Enum.GetNames(typeof(Colors)))
        {
            Console.WriteLine("{0}={1}", colorName,
            Convert.ToInt32(Enum.Parse(typeof(Colors), colorName)));
        }

            Console.WriteLine();

            Colors myOrange = (Colors)Enum.Parse(typeof(Colors), "Red, Yellow");

            Console.WriteLine("{1} {0}", myOrange, Convert.ToInt64(myOrange));

            Console.ReadLine();
    }
}

相關推薦

C# 列舉

C# 列舉學習需要注意: System.Enum 型別是所有列舉型別的抽象基類(它是一種與列舉型別的基礎型別不同的獨特型別),並且從 System.Enum 繼承的成員在任何列舉型別中都可用。存在從任

C# 線程池ThreadPool的用法

可見 https sdn 而是 plain call 計時器 最大線程數 water https://blog.csdn.net/smooth_tailor/article/details/52460566 什麽是線程池?為什麽要用線程池?怎麽用線程池? 1. 什

C語言可變引數

今天在看程式碼的時候,看到了這樣一段除錯的程式碼,搞不清楚(...)這個是什麼意思,看了下相關資料,簡單記錄下。 #ifdef DEBUG #define DBG(...) fprintf(stderr, " DBG(%s, %s(), %d): ", __FILE__, __FUNCTION_

[教程技巧] Swift和C的互動

轉自貓·仁波切的部落格(微博)其中 @asmname 的兩個用法源於我的猜測驗證,用到了 Xcode, lldb, nm, llvm ir 等工具或格式。其中 name mangling 部分源自 WWDC。相關的分析主要基於我 dump 出的 Swift 標準庫宣告程

C語言之記憶體

C語言記憶體分析 一、進位制 概念:進位制是一種計數方式,是數值的表現形式 4種主要的進位制: ①. 十進位制:0~9  ②. 二進位制:0和1 ③. 八進位制:0~7 ④. 十六進位制:0~9+a b c d e f C語言在預設的情況下為十進位制。 Int num=1010;//十進位制 Int num

c語言中結構體的宣告使用以及位段

1.結構體的定義 聚合資料型別能夠同時儲存超過一個的單獨資料。c語言中提供了兩種型別的聚合資料型別,陣列和結構。結構也是一些值的集合,這些值稱為它的成員。但每個成員可能具有不同的資料型別。結構體變數屬於標量型別,所以你可以像對待其他標量型別那樣執行相同型別的操作。結構體也可

C語言之複雜指標

指標陣列和陣列指標 指標陣列:首先它是一個數組,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是“儲存指標的陣列”的簡稱。 陣列指標:首先它是一個指標,它指向一個數組。在 32 位系統下永遠是佔 4 個位元組,至於它指向的陣列佔多少位元組,不知道。

C++虛擬函式

  C++的虛擬函式是其實現多型的基礎,今天在這裡分享一下我對C++虛擬函式相關知識的系統總結,技術有限,如有不當,歡迎指正。   在將內容前,將大致涉及到的內容圖解如下:     1. 有無虛擬函式在繼承中的區別 //-- Zuo add on

c++】由構建複數類c++的user defined literal特性

User defined literal是c++提供的特性,可以讓程式設計者僅用常規的幾個資料型別來初始化自定義的類物件,而不需要顯式呼叫類構造/拷貝方法,使程式碼可讀性更高。但實際上這本質上還是是運算子的過載,還是要呼叫一部分方法。下文記錄了嘗試該特性的實驗,這個小實驗以構

c++ 左偏樹 猴王例題講解

題目:猴王 Monkey King 題目描述 很久很久以前,在一個廣闊的森林裡,住著n只好斗的猴子。起初,它們各幹各的,互相之間也不瞭解。但是這並不能避免猴子們之間的爭吵,當然,這隻存在於兩個陌生猴子之間。當兩隻猴子爭論時,它們都會請自

c++友元函式

在實現類之間資料共享時,減少系統開銷,提高效率。如果類A中的函式要訪問類B中的成員(例如:智慧指標類的實現),那麼類A中該函式要是類B的友元函式。具體來說:為了 使其他類的成員函式直接訪問該類的私有變數。即:允許外面的類或函式去訪問類的私有變數和保護變數,從而使兩個類共享同一函式。 3.友元函式和普通

Linux C程式設計---指標陣列(二維陣列、多級指標)

講到指標和陣列,先給大家看一道例題: 題目:填空練習(指向指標的指標) 1.程式分析:      2.程式原始碼: main() { char *s[]={"man","woman","girl","boy","sister"}; char **q; int k; for(

C++中for迴圈語句

1 for迴圈語句概述 for迴圈語句的語法是 for(初始化語句; 條件語句; 表示式語句) {    執行語句; } 其中,初始化語句用於每次迴圈過程中都要修改的變數進行初始化;而條件語句用來控制

C#基礎之構函數

bsp alt 基礎 ges -1 c# ima log images C#基礎之析構函數

PHP開發環境

安裝 桌面 nbsp pmp 總結 ubunt bsp 虛擬機 xshell 單工作機情況 windows + wamp windows + XShell類終端工具 + linux虛擬機 Ubuntu桌面版 自帶終端 Mac OS + mamp Mac OS 自帶終端 M

URL鏈接中的utm_source,utm_medium

mono running -i 支持 用戶 ica ase 分析 ng- 工作中須要分析一些鏈接,統計分析一些信息。比方例如以下的鏈接: http://lightapplication.xxxx.com/?utm_source=ucweb&utm_medium=

結合實戰Controller 配置

sa1. xwork.xml 主文件 xwork.xml 是 WebWork 自身的配置文件,實際開發中它是配置文件的主幹骨架。 xwork 定義了一個 default 包,通過 include 包含 xwork 子文件。如下所示:<!DOCTYPE xwork PUBLIC "-//OpenS

備份的幾種方式

備份 lan-free server-free 異地備份 備份方案1、本地備份方式(1)普通網絡備份方式 1、備份節點發起備份通過重復刪除技術將數據備份到備份存儲上。 2、備份策略完整備份/周,增量備份/

【HTTP】另類的POST頭數據 RFC1867協議格式

client oct discuz ... Enctype -s 協議 肩膀 .html http://blog.csdn.net/ai2000ai/article/details/52161979 昨天在實戰表單模擬提交的時候,有發現在提交某個表單的時候,頁面(discu

.NET設計模式

責任鏈 參數 聚合 備忘 工廠方法 繼承復用 解釋器模式 基礎上 衍生 首先,是設計模式的分類,我們知道,常用的設計模式共23種。但總體來說,設計模式氛圍三大類: 創建型模式,共五種:工廠方法模式、抽象工廠模式、單列模式、建造者模式、原型模式。 結構型模式,共七種:適配器模