1. 程式人生 > >Switch和Enum的那點事兒

Switch和Enum的那點事兒

類之間傳遞引數呼叫方法時,當引數不同是,可以考慮用列舉做引數,被呼叫類中用switch……case判斷呼叫
列舉
public enum BindType
{
    alarm,
    phone_location,
    phone_trace,
    machine_room,
    dili,
    machine_room_info,
    site,
    tousu
}
列舉元素的預設基礎型別為 int。預設情況下,第一個列舉數的值為 0,後面每個列舉數的值依次遞增 1。
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
列舉數可以具有重寫預設值的初始值設定項。例如:
enum Days {Sat=100, Sun, Mon, Tue, Wed, Thu, Fri};
在此列舉中,強制元素序列從 100 而不是 0 開始。
獲取列舉值:int x = (int)Days.Sun;

列舉長整型
enum Range :long {Max = 2147483648L, Min = 255L};
獲取列舉值:long x = (long)Range.Max;

列舉也支援string型別,

 string tmp="a";
            switch (tmp)
            {
                case "a":
                    Console.WriteLine("a");
                    if (1 == 1)
                    {
                        Console.WriteLine("1==1");
                    }
                    break;
                case "b":
                    Console.WriteLine("b");
                    break;
            }
msdn上這樣寫的:
enum 關鍵字用於宣告列舉,即一種由一組稱為列舉數列表的命名常陣列成的獨特型別。每種列舉型別都有基礎型別,該型別可以是除 char 以外的任何整型。
列舉元素的預設基礎型別為 int。預設情況下,第一個列舉數的值為 0,後面每個列舉數的值依次遞增 1。

enum在呼叫toString()時,結果為其名詞的字串
如BindType.phone_trace.toString():"phone_trace"

switch配合列舉使用:
 BindType tmpType=BindType.phone_trace;
            switch (tmpType)
            {
                case BindType.phone_trace:                   
                case BindType.alarm:
                    Console.WriteLine("alarm");
                    if (1 == 1)
                    {
                        Console.WriteLine("1==1");
                    }
                    break;
                case BindType.dili:
                    Console.WriteLine("dili");               
                    break;
      default:
                    Console.WriteLine("default");
                    break;
            }
switch語句中可以用列舉實現匹配
switch每個case中可以實現多行語句

(可以跟if……else if……一樣實現匹配,但效率要高(以前總以為只能處理單行,失誤失誤)),如BindType.alarm
另外case中有處理時,記得跟break,否則會報錯;沒有處理語句時,可以不用break,表示跟下面的處理方式相同

使用例子
A類中:
public enum BindType
{
    alarm,
    phone_location,
    phone_trace,
    machine_room,
    dili,
    machine_room_info,
    site,
    tousu
}

B類中使用:
public A.BindType bindType;
bindType=A.BindType.alarm;
console.writeline(bindType.toString())結果為:alarm

相關推薦

SwitchEnum事兒

類之間傳遞引數呼叫方法時,當引數不同是,可以考慮用列舉做引數,被呼叫類中用switch……case判斷呼叫列舉public enum BindType{    alarm,    phone_location,    phone_trace,    machine_room,    dili,    mac

操作系統Web服務器事兒

memory ... 還需 不同 圖片 web kill -o 傷感 又一個進程啟動了,操作系統老大嘆了一口氣,畢竟自己的肩頭又多了一份責任。 讓人煩惱的是,新來的家夥們很無知,幾乎就是一張白紙。有些老實本分的會按照自己的規矩來做事,有些刺頭兒喜歡問這問那,時不時還想搞點非

js 函式實參列表arguments形參的事兒

**JavaScript是解釋下前端語言和其他編譯性後端語言(C++、java、python、golang…)不一樣,由於變數的型別沒那麼嚴格,一個var就可以定義全部,導致語法也比較鬆懈!函式形參和實參傳遞的時候,也無需一一對應,都是隱式轉換了!而後端編譯性語言是有嚴格的變數型別定義的,所

Mob開發者沙龍 接著聊聊SDKApp的事兒

  數字網路化的時代,手機,已成為社會生活的剛需,而App應用則為世界開啟新的大門,增添無數奇妙的色彩,改變人們的生活方式。如今,各種App應用層出不窮,使用者增長和流量變現的手段隨著網際網路的不斷髮展,在如此激烈的形態下,如何成為獨角獸?9月1日,Mob將結合SDK的產品,在開

有關藍芽耳機藍芽音訊的事兒

耳機 耳機這部分,目前市面上來講,一般是根據有線和無線來區分,有線耳機一般按照介面可分為3.5mm介面和6.5mm介面;按照佩戴方式一般分為頭戴式、入耳式等。 不同價位的耳機,區別主要在兩部分: 其一:單元部分,這部分決定了耳機的解析能力、聲場、動態等,這部分

我終於搞清楚了String有關的事兒

String,是Java中除了基本資料型別以外,最為重要的一個型別了。很多人會認為他比較簡單。但是和String有關的面試題有很多,下面我隨便找兩道面試題,看看你能不能都答對: Q1:String s = new String("hollis");定義了幾個物件。 Q

我終於搞清楚了String有關的事兒

String,是Java中除了基本資料型別以外,最為重要的一個型別了。很多人會認為他比較簡單。但是和String有關的面試題有很多,下面我隨便找兩道面試題,看看你能不能都答對:Q1:String s = new String("hollis");定義了幾個物件。Q2:如何理解

談談原始碼管理事兒(二)——SVNTFS,你選誰?

SVN簡介:   SVN全名Subversion,即版本控制系統。SVN與CVS一樣,是一個跨平臺的軟體,支援大多數常見的作業系統。作為一個開源的版本控制系統,Subversion管理著隨時間改變的資

AmazonMysql之間的事兒

初始 公司專案初始,就使用了亞馬遜的各項雲服務,亞馬遜的各項服務真的非常棒,大大簡化了公司產品的擴容和運維工作。 之前公司使用亞馬遜的EC2例項,一切都非常好。隨著業務的擴充套件,客戶需要mysql關係型資料庫,為了使用方便,我們選了亞馬遜提供的RDS服務,這玩意兒就

關於盤點總結的事兒

本月的功能在踉蹌中勉強上線了,這個月有實驗的味道,有摸索的代價,有分工和銜接上的問題,有技術儲備方面的不足,有業務梳理方面的欠缺,也有個人能力和意識上的不足,梳理整個開發流程,目前存在的幾大問題: 一、程式碼質量問題: 描述分析 1.效能層面:   從綜合維度看,程式碼質量好壞取決於開發人員整

《開源框架事兒19》:特斯拉建“樁”與開源的生命力

充電站 otto 期權 eas gb2 平臺 程序 蘋果 名詞 在美國的矽谷,在中國的中關村,很多的技術先驅者懷揣夢想。用激情不懈地追求著他們宏遠的目標和巨大的個人財富。開源。正在成為這個時代眼下最火熱的名詞之中的一個。開源精神,作為一種合作協同的驅動力,正在發展為一種更

《開源框架事兒25》:對框架模板引擎實現方式的改造實錄

port 內嵌 代碼調試 iter put 文件路徑 children nts fault 點滴悟透設計思想,Tiny模板引擎優化實錄! 增加框架設計興趣小組:http://bbs.tinygroup.org/group-113-1.html Tiny模板引擎的實

關於LOG事兒

java;源碼時代日誌,作為記錄系統中硬件、軟件和系統問題的信息,同時還可以監視系統中發生的事件,是產品運維中非常重要的數據之一,用戶可以通過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕跡。日誌根據程序和不同領域,可分為消息日誌,事件日誌,數據庫日誌等等。對於Java工程師而言,程序代碼的日誌是由

談談源碼管理事兒(一)——源碼管理十誡(轉)

我不 evel .html 文件夾 jetbrains enable thum XML 構建 引言: 若是還有能夠毫無偏見地涉及各個編程語言。比源碼管理軟件更必要的工具。我倒是非常想見識一下。源碼管理軟件是我們工作的必備工具,是很多開發團隊的血液。那為什麽我們都

css中關於居中的事兒

效果圖 單元格 meta 得到 部分 邊距 絕對定位 lin ble   關於居中,無論是水平居中,還是垂直居中都有很多方式,下面我來介紹一些常用的。 第一部分:水平居中   1.實現行內元素的居中。方法:在行內元素外面的塊元素的樣式中添加:text-align:cen

MVC之前的事兒 ---- 系列文章

需要 cnblogs post omx pip 實現原理 內容 activator div MVC之前的那點事兒系列,是筆者在2012年初閱讀MVC3源碼的時候整理的,主要講述的是從HTTP請求道進入MVCHandler之前的內容,包括了原創,翻譯,轉載,整理等各類型文

php curl事兒

func utf8 格式 姓名 url orm peer div 是否 curl是最常用功能之一初始化句柄 $ch = curl_init(); post 傳$data 1. 如果$data是字符串,則Content-Type是application/x-ww

反編譯事兒

kms ros ogr files 位置 file bsp 所在 命令 1.ildasm.exe 所在文件夾位置 C:\Program Files (x86)\Microsoft SDKs\Windows 2.ilasm.exe 所在文件夾位置:cd C:\Windows

Maven 事兒(轉)

做到 conn active cep ant tab name www color 0. 前言 Jason Van Zyl,在 Java 十大風雲人物排行榜上或許會看到他。 這兄弟是幹嘛的? 他就是 Maven 的創始人,人們都尊稱他為“Maven 他爸&

聊聊Cisco 3650交換機系統升級事兒

roc ase necessary 文件 -i 文章 ota catalyst ive 說起思科的交換機升級,大多數人想到的是以下幾步:(1)把系統.bin文件通過TFTP或是FTP上傳到交換機中(2)將原有.bin文件刪除,重啟(或是手動設置引導順序)(3)重啟後升級完成