C#中枚舉類型和int類型的轉化

先定義一個枚舉類型

public enum PropertyType { 小學 = 0, 初中, 高中,大學 };

?

int ->enum?

?????? int d=2; ????

????? ?PropertyType? a=(PropertyType)d;

int <- enum????????

???? ? PropertyType? d = PropertyType.小學; ??????

????? ?int a = Convert.ToInt32(d);

Enum類有關的方法

Enum.Parse 方法 (Type, String)

將一個或多個枚舉常數的名稱或數字值的字符串表示轉換成等效的枚舉對象。

 
public static Object Parse(Type enumType,string value
)參數
enumType類型:System.Type
枚舉類型。

value類型:System.String 包含要轉換的值或名稱的字符串。返回值類型:System.Object enumType 類型的對象,其值由 value 表示。
?

如果我們有兩個enum,

1public?enum?Colors {Red, Green, Blue}
2?
3public?enum?BgColors {Red, Black, Green, Blue }

?

看起來差不多。

有一天有需要把一個變成另一個來用。可能會寫成這樣:

1Colors font_color = Colors.Blue;
2BgColor bg = (BgColor)font_color;

看起來可以,編譯也對。但實際上是不對的,因為實際上是轉成enum所代表的int,對應的結果往往不是我們想要的。

正確的作法是?

1Colors font_color = Colors.Blue;
2(BgColor)Enum.Parse(typeof(BgColor), font_color.ToString());

?這是一種很簡單的理念,但常常寫成上面的寫法。但日后如果其中之一有變,造成順序有更改的話,就會出現錯誤。

?

Enum.GetName 方法

指定枚舉中檢索具有指定值的常數的名稱。

public static string GetName(Type enumType,Object value
)enumType
類型:System.Type
枚舉類型。value
類型:System.Object
特定枚舉常數的值(根據其基礎類型)。返回值
類型:System.String
一個字符串,其中包含 enumType 中值為 value 的枚舉常數的名稱;如果沒有找到這樣的常數,則為 null

?

Enum.GetNames 方法

檢索指定枚舉中常數名稱的數組。

?

public static string[] GetNames(Type enumType
)參數
enumType
類型:System.Type
枚舉類型。返回值
類型:System.String[]
enumType 的常數名稱的字符串數組。
View Code

?

?

?

?

?

轉載于:https://www.cnblogs.com/tech-bird/p/3515199.html

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

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

相關文章

vagrant使用centos的環境安裝..

vagrant這貨挺好用的..簡要就是, 下好virtualbox, vagrant, 然后下個你需要的box. 然后vagrant box add boxname boxpath就行. 然后在合適的地方vagrant init就能創建好虛擬機, 然后vagrant up是開啟, vagrant ssh是通過ssh連接過去, 可以裝一個zsh , 配置oh my zsh啥的, 然后安…

linux mysql odbc驅動安裝_MySQL ODBC 驅動安裝

閱讀目錄一、在線安裝1、yum在線安裝驅動2、配置驅動3、測試連接二、編譯安裝1、MySQL創建測試用戶和測試庫2、安裝驅動3、配置驅動4、測試一、在線安裝1、yum在線安裝驅動# yum -y installunixODBC#yum -y install mysql-connector-odbc2、配置驅動(1)查看驅動程序相關信息# c…

通過 HTTPS 和 SSL 確保 Windows Azure 網站 (WAWS) 安全

編輯人員注釋&#xff1a;本文章由 Windows Azure 網站團隊的項目經理 Erez Benari 撰寫。 隨著身份盜竊和各種形式的網絡犯罪迅速增多&#xff0c;使用安全套接字層 (SSL) 對網站進行保護變得越來越重要和普遍。如果將網站托管在 Windows Azure 網站 (WAWS) 上&#xff0c;您可…

mysql之多表查詢

今天在項目中遇到一個數據庫查詢的問題&#xff1a;三張表分別放置不同的東西&#xff1a;分享的音頻相關數據、分享的文字圖片說說、分享的主題相關數據。所有分享的東西都可看做新鮮事&#xff0c;現在要求從這三張表將相同的幾個字段的數據全部查找出來按照發布時間先后排序…

設立SharePoint2010列表的項目級權限

設置SharePoint2010列表的項目級權限 在SharePoint2010中我們經常會用到這樣的權限設置&#xff0c;在一個列表中可以存儲多個人輸入的數據&#xff0c;但每個人只能看到自己的那部分數據。也就是多個人共同維護一個列表&#xff0c;但各自只能查看、編輯、刪除自己錄入的那部分…

MySQL優化filler值_MySQL 性能優化神器 Explain 使用分析

簡介MySQL 提供了一個 EXPLAIN 命令, 它可以對 SELECT 語句進行分析, 并輸出 SELECT 執行的詳細信息, 以供開發人員針對性優化.EXPLAIN 命令用法十分簡單, 在 SELECT 語句前加上 Explain 就可以了, 例如:EXPLAIN SELECT * from user_info WHERE id < 300;準備為了接下來方便…

Codeforces Round #224 (Div. 2)

題目&#xff1a;http://codeforces.com/contest/382 A Ksenia and Pan Scales 一個求天平是否能夠平衡的題目。。。水題,注意一下結果的輸出就行。 1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 #include <cstdlib>5 #include <…

二叉樹第i層中的所有結點_講透學爛二叉樹(二):圖中樹的定義amp;各類型樹的特征分析...

日常中我們見到的二叉樹應用有&#xff0c;Java集合中的TreeSet和TreeMap&#xff0c;C STL中的set、map&#xff0c;以及Linux虛擬內存的管理&#xff0c;以及B-Tree&#xff0c;B-Tree在文件系統&#xff0c;都是通過紅黑樹去實現的。雖然之前寫過《再談堆排序&#xff1a;堆…

node-webkit 開發環境搭建

node-webkit支持的操作系統類型&#xff1a; Linunx:32bit / 64bitWindows: win32Mac:32bit,10.7 開發環境 1&#xff0c;根據自己的操作系統下載響應的nw二進制文件&#xff0c;下載地址&#xff1a;https://github.com/rogerwang/node-webkit 2,建立基本開發目錄&#xff0c;…

mysql sqlsugar_.net core +mysqlSugar(最為簡單的增刪改查)

首先建立.net Core API - empty 這個就不說了然后創建新的Controller記得添加路由[Route("api/Users")]然后在Nuget Packages安裝 所需安裝包這里是用mysql所以下載如下的mysqlSugarCore(切記不要忘記安裝Mysql.Data)創建實例化class文件DbText.cs用于連接數據庫&…

關于eclipse的indigo版中文注釋時字體太小的問題(轉)

eclipse目前最新版代號indigo, 在win7上使用時中文注釋時字體太小的問題. 為什么會這樣? 首先我們應該知道, 在win7系統中, font是有"顯示"和"隱藏" 狀態的. 默認情況下, eclipse使用的默認字體courier new是處于 "隱藏"下的. 這樣當eclipse打開…

webdriver(python)學習筆記七——多層框架定位與智能等待

多層框架或窗口定位&#xff1a; switch_to_frame()switch_to_window()智能等待&#xff1a; implicitly_wait()現在web應用中經常會遇到框架如&#xff08;frame&#xff09;或窗口&#xff08;windows&#xff09;的應用&#xff0c;這樣定位就比較難&#xff0c;有時定位一個…

bbp代碼python_如何正確計算加密債券價格的BBP(Bollinger波段百分比)?

我試圖用這個代碼計算python中的BBP(Bollinger頻帶百分比)。然而&#xff0c;我的^{cd1>}函數返回^{{cd2>}或^{cd3>}用于^{cd4>}。當我使用一些硬幣收盤價時&#xff0c;令人困惑的是&#xff0c;這個函數返回正確的^{cd4>}數字(而不是inf)。這是我的python代碼…

ASP.NET學習路線圖

轉自&#xff1a;http://www.cnblogs.com/huangmeimujin/archive/2011/08/08/2131242.html 如果你已經有較多的面向對象開發經驗&#xff0c;跳過以下這兩步&#xff1a; 第一步 掌握一門.NET面向對象語言&#xff0c;C#或VB.NET 我強烈反對在沒系統學過一門面向對象(OO)語言的…

centos 多個mysql數據庫_CentOS6.5 一臺服務器同時安裝多個Mysql數據庫

建用戶與組groupadd mysqluseradd -g mysql mysql下載源碼&#xff1a;wget https://downloads.mariadb.org/interstitial/mariadb-10.1.10/source/mariadb-10.1.10.tar.gztar -xvf mariadb-10.1.10.tar.gz1、編譯&#xff1a;cmake . -DCMAKE_INSTALL_PREFIX/var/lib/mysql33…

MVC3學習 一 ViewBag和Html.Raw

ViewBag類似于JavaScript的語法&#xff0c;在賦值時動態賦值&#xff0c;比如ViewBag.Dog“哈哈” &#xff0c;這樣就會創建一個ViewBag.Dog的對象&#xff0c;供前端頁面調用。 在調用時&#xff0c;前臺頁面用razor方式&#xff0c;ViewBag 直接使用。 public class HomeCo…

PHPCMS源碼分析(二)

index.php中引入了phpcms框架的入口文件&#xff0c;下面我們看下這個入口文件 /phpcms/base.php define(IN_PHPCMS, true);//防止惡意調用//PHPCMS框架路徑 define(PC_PATH, dirname(__FILE__).DIRECTORY_SEPARATOR); //重新定義網站根目錄 if(!defined(PHPCMS_PATH)…

mysql 5.6密鑰_MySQL的密鑰文件不正確

我遇到了InnoDB的問題(表是最初的MyISAM,但是之前將它轉換為InndoB)表;我正在嘗試運行此查詢&#xff1a;SELECTposts.id,posts.post_titleFROMrss_posts AS postsINNER JOIN rss_feeds AS feeds ON posts.blog_idfeeds.idWHEREfeeds.blog_language1ORDER BYposts.post_date_db…

JS-取出字符串中重復次數最多的字符并輸出

/**取出字符串中重復字數最多的字符 */ var words sdfghjkfastgbyhnvdstyaujskgfdfhlaa;      //創建字符串 var word,                          //單個字符length;                          //該字符的長度 //…

windows下查看靜態庫和動態庫的導出函數

在window下查看動態庫的導出函數可以用vs自帶的Depends工具&#xff1b; 查看靜態庫的信息要用命令行來實現&#xff1a; dumpbin /LINKERMEMBER Test.lib > 1.txt 上面的功能是將靜態庫的信息導出保存在1.txt文件中&#xff0c;這樣就可以在1.txt文件中查看相關的信…