C 和python中列舉的對照學習

2021-09-11 05:42:44 字數 1365 閱讀 9501

一、c#中的列舉定義及使用

enum orientation

//2.關於列舉的型別。預設是int,但可以重新定義為

enum tiangan : byte//可以為byte、short、ushort、uint、long和ulong等數值型別

//3.預設情況下每個值從0開始。但可以重新賦值,後續值為前值+1

enum dizhi

//4.列舉不可以有重複的名稱,但是可以有重複的值。

enum color

class program

"); //使用強制轉換獲得列舉值

int jiazi = (int)dizhi.yin;

console.writeline($"jiazi的數值是");

console.writeline($"tiangan的第二個是:");//第乙個引數是enum物件,第二個是列舉的值

foreach(var i in enum.getnames(typeof(tiangan)))//獲得所有列舉

console.writeline(i);}}

輸出是

二、python中列舉的使用

python中沒有專門的列舉型別。可以通過字典或者類來構建。但是這樣構建的列舉存在問題。一是列舉值可以修改,二是這些列舉功能的類可以被例項化,三是列舉值是否重複無法檢查。

python雖然沒有專門enum關鍵字,但是引進了enum模組來代替enum關鍵字。要知道,python的模組可以解決一切問題o(∩_∩)o哈哈~。

from enum import intenum

class enumtiangan(intenum):

jia=1,

yi=2,

bing=3,

ding=3,

wu=4,

ji=5,

geng=6

xin=6

#按名字取值

print(enumtiangan["jia"])#enumtiangan.jia

print(enumtiangan["jia"].value)#1

print(enumtiangan["jia"].name)#jia

#取全部值

for i in enumtiangan:

print("%s=%d"%(i.name,i.value))

輸出:

關於API SDK和MFC的對照學習

如鵬網的 c語言也能幹大事 教程中使用的是c語言呼叫api sdk的方式來進行windows程式的編寫,有的同學在學習的過程中到網上查詢課上教的一些函式的寫法,但是有時候會碰到一些用mfc來進行呼叫的方式,不知道怎麼轉換成api sdk的方式。首先要肯定和鼓勵這位同學的想法,因為他已經開始明白 語言...

C 中列舉型別在switch語句中值對照問題

如例子所示,在資料庫中儲存的是列舉型別的名稱而不是值,要如何對照呢?首先需要進行型別轉換,列舉型別提供了parse函式,用法如下 刪除細目表 switch basetableenum enum.parse typeof basetableenum entity.biaohao case baseta...

C 中列舉與位列舉的區別和使用

呼叫普通列舉時如圖所示,呼叫位列舉多選時需要中間加乙個 列舉和位列舉的定義 位列舉定義時需要加乙個 flags 還要賦值第二個是第乙個的二倍 class program 判斷這個學生是否包含 if hobby.吃.hasflag hobby.吃 console.readkey 學生類 public ...