CLR via C#(18)——Enum

1. Enum定義

枚舉類型是經常用的一種“名稱/值”的形式,例如:

public?enum?FeedbackStatus
???? {
???????? New,
???????? Processing,
???????? Verify,
???????? Closed
???? }

定義枚舉類型之后我們在使用時方便了許多,不用再記著0代表什么狀態,1代表什么狀態。而且枚舉類型時強類型的,在編譯時就可以進行類型安全檢查。枚舉類型是值類型的,它是直接從System.Enum繼承的,System.Enum又是繼承自System.ValueType。但是枚舉類型不可以定義方法、屬性或者事件。

2. 常用方法

①Enum.GetUnderlyingType:獲取枚舉類型實例值的基類。

?? Console.WriteLine(Enum.GetUnderlyingType(typeof(FeedbackStatus)));//結果System.Int32

ToString() :轉換為字符串形式

??? FeedbackStatus status=FeedbackStatus .New ;
??? Console.WriteLine(status.ToString());??? //結果New
??? Console.WriteLine(status.ToString("G")); //結果New
??? Console.WriteLine(status.ToString("D")); //結果0

?

GetValues:獲取枚舉類型中定義的所有符號以及對應的值。

FeedbackStatus[] status = (FeedbackStatus[])Enum.GetValues(typeof(FeedbackStatus));
??????????? foreach(FeedbackStatus s in status )
??????????? {
??????????????? Console.WriteLine("{0:D}--{0:G}", s);
??????????? }

image

GetNames:獲取枚舉類型中定義的所有符號。

string[] arr= Enum.GetNames(typeof(FeedbackStatus));
????????? foreach (string name in arr)
????????? {
????????????? Console.WriteLine(name);
????????? }

image

Parse, TryParse:將文本類型轉換為對應的枚舉類型。

FeedbackStatus status = (FeedbackStatus)Enum.Parse(typeof(FeedbackStatus), "New", false);
Enum.TryParse("aaa", false, out status);

IsDefine:判斷一個值對于一個枚舉類型是否合法。

Console .WriteLine(Enum.IsDefined(typeof(FeedbackStatus),1));??? //true
Console.WriteLine(Enum.IsDefined(typeof(FeedbackStatus), "New"));//true
Console.WriteLine(Enum.IsDefined(typeof(FeedbackStatus), "new"));//false,區分大小寫
Console.WriteLine(Enum.IsDefined(typeof(FeedbackStatus), "aaa"));//false
Console .WriteLine(Enum.IsDefined(typeof(FeedbackStatus ),5));?? //false

?

3. 擴展方法與枚舉

上面提到過枚舉中是不允許定義方法和事件的。但是我們可以通過擴展方法變相的為枚舉添加方法。

public??static class?EnumMethod
{
??? public static void Show(this FeedbackStatus status)
??? {
??????? string[] arr = Enum.GetNames(typeof(FeedbackStatus));
??????? Console.WriteLine("枚舉類型列表:");
??????? foreach (string name in arr)
??????? {
??????????? Console.WriteLine(name);
??????? }
??? }
}

static void Main(string[] args)
????? {
????????? FeedbackStatus status = FeedbackStatus.Processing;
??????????status.Show();

????? }

image

轉載于:https://www.cnblogs.com/changrulin/p/4778647.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374542.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PHP中 magic_quotes_gpc 和 magic_quotes_runtime 區別及其反斜線轉義問題

php中關于反斜線轉義:php中數據的魔法引用函數 magic_quotes_gpc 或 magic_quotes_runtime 設置為on時,當數據遇到 單引號 和 雙引號" 以及 反斜線\ NULL時自動加上反斜線,進行自動轉義。注釋:默認情況下,PH…

JDK中的設計模式

Zen的JCG合作伙伴Brian Du Preez 是IT藝術領域的合作伙伴,他在收集JDK中最常見的設計模式方面做得非常出色。 模式列表確實令人印象深刻且很長,所以讓我們不再ba不休,向您展示它。 前幾天,我在企業Dev中看到了Rob Williams Brain …

414. 第三大的數

給你一個非空數組,返回此數組中 第三大的數 。如果不存在,則返回數組中最大的數 方法一 首先將數組排序,然后通過集合去除重復的元素,最后進行一次判斷,選擇第三大元素還是最大元素 class Solution {public int thir…

bufferevent 與 socket

http://blog.sina.com.cn/s/blog_56dee71a0100qx4s.html 很多時候,除了響應事件之外,應用還希望做一定的數據緩沖。比如說,寫入數據的時候,通常的運行模式是: l 決定要向連接寫入一些數據,把數據放入到緩沖…

Codeforces Round #102 (Div. 1) A. Help Farmer 暴力分解

A. Help Farmer題目連接: http://www.codeforces.com/contest/142/problem/A Description Once upon a time in the Kingdom of Far Far Away lived Sam the Farmer. Sam had a cow named Dawn and he was deeply attached to her. Sam would spend the whole summe…

電力電子、電機控制系統的建模和仿真_清華團隊研發,首款國產電力電子仿真軟件來啦~已捐贈哈工大、海工大、清華使用!...

點擊上方電氣小青年,關注并星標由于微信改版,只有星標才能及時看到我們的消息哦━━━━━━推薦閱讀:《膜拜大神!清華大學電機系2021年接收推薦免試直碩(博)生擬錄取名單公示!》《滴滴程序員年薪80萬被鄙視不如在二本…

JVM如何處理鎖

當我們談論最新版本的Sun Hotspot Java虛擬機1.6時,當您嘗試從java.util.concurrent.locks.Lock實現獲取鎖或輸入同步塊時,JVM將執行以下三種鎖類型: 有偏見的 :有時即使在并發系統中也沒有爭用,并且在這種情況下&…

基于node.js及express實現中間件,實現post、get

首先,當然是有必要的環境,安裝node,這個我就不多說了。 依賴模塊: "express": "^4.13.4", "request": "^2.72.0", "body-parser": "^1.13.3",頁面 $.ajax({type: &q…

可視化分析之圖表選擇

轉載于:https://www.cnblogs.com/yymn/p/4783631.html

定義并調用函數輸出 fibonacci 序列_科學網—Zmn-0351 薛問天:再談數學概念的定義,評新華先生《0345》...

Zmn-0351 薛問天:再談數學概念的定義,評新華先生《0345》【編者按。下面是薛問天先生發來的文章。是對《Zmn-0345》新華先生文章的評論。現在發布如下,供網友們共享。請大家關注并積極評論。另外本《專欄》重申,這里純屬學術討論&…

Java和內存泄漏

總覽 術語“內存泄漏”在Java中的使用方式不同于在其他語言中使用的方式。 通用術語中的“內存泄漏”是什么意思,在Java中如何使用? 維基百科的定義 當計算機程序消耗內存但無法將其釋放回操作系統時,就會發生計算機科學中的內存泄漏&#x…

453. 最小操作次數使數組元素相等

給你一個長度為 n 的整數數組&#xff0c;每次操作將會使 n - 1 個元素增加 1 。返回讓數組所有元素相等的最小操作次數。 class Solution {public int minMoves(int[] nums) {int res 0;int sum 0;int n nums.length;for(int i 0;i<n;i){sum nums[i];}res sum - min…

第二章 TCP/IP 基礎知識

第二章 TCP/IP 基礎知識 TCP/IP transmission control protocol and ip internet protocol 是互聯網眾多通信協議中最為著名的。 2.2 TCP/IP 的標準化 2.2.2 TCP/IP 標準化精髓 TCP/IP 協議始終具有很強的實用性。 相比于TCP/IP &#xff0c;OSI 之所以未能達到普及&#xff0…

CSS太陽月亮地球三角戀旋轉效果

純粹玩一下&#xff0c;好像沒有什么實際的卵用&#xff0c;but&#xff0c;純玩買不了上當&#xff0c;純玩買不了受騙。。。。。。。。 地月旋轉的一個css效果&#xff0c;無聊玩玩&#xff0c;可以復制到記事本試試 <!DOCTYPE html><html lang"en">&l…

gorm preload 搜索_LeetCode刷題筆記|95:不同的二叉搜索樹 II

題目描述給定一個整數 n&#xff0c;生成所有由 1 ... n 為節點所組成的 二叉搜索樹 。示例輸入&#xff1a;3輸出&#xff1a;[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解釋&#xff1a;以上的輸出對應以下 5 種不同結構的二叉搜索樹&#xf…

Java初學者指南

Java編程的第一步。 對于Java中的入門教程&#xff0c;請參閱Sun的官方幫助這里 除了核心語言外&#xff0c;還有幾種技術和API 介紹。 我們建議首先閱讀涵蓋 基礎知識&#xff0c;并繼續其余的教程。 我們建議&#xff1a; 保持代碼簡單易讀 拆分邏輯組件&#xff08;類…

Javascript中Promise對象的實現

http://segmentfault.com/a/1190000000684654 http://www.infoq.com/cn/news/2011/09/js-promise/轉載于:https://www.cnblogs.com/zuiyirenjian/p/4787864.html

字符串分割與存入List集合

List<string> namelist new List<string>(); string[] namejh null; string name "張三李四王五"; 第一步&#xff1a;將三個名字分離出來 namejh name.Split("".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); namelist new Li…

GTJ2018如何導出全部工程量_如何成為優秀的造價員?廣聯達編制內刊手冊,造價員算量高手秘籍...

如何成為優秀的造價員&#xff1f;廣聯達編制內刊手冊&#xff0c;造價員算量高手秘籍[高手秘籍]是廣聯達課程編制委員會暨直播委員會精心打造的&#xff0c;能夠“讓您深入理解軟件計算、設置等原理,遇到問題有處理思路,以常見問題為導向&#xff0c;重點進行原因分析&#xf…

帶有Spring,Hibernate,Akka,Twitter Bootstrap,Apache Tiles和jQuery的Maven Web項目Kickstarter代碼庫...

我很高興將第二個項目上傳到GitHub&#xff0c;以幫助人們盡快開始Java Web App開發。 我正在與Apache License 2.0共享此代碼。 這是相同的網址&#xff1a; https://github.com/ykameshrao/spring-hibernate-springdata-springmvc-maven-project-framework 該項目包括以下部…