C 列舉高階用法之Description

2021-10-11 18:09:47 字數 2067 閱讀 8431

基礎列舉

namespace testenum

}

宣告列舉,呼叫。

幾個常用的轉換不做介紹,一嗦一大堆。

enum轉string

enum 轉int

string轉enum

整型轉enum

public

enum name

加了description,就可以通過反射來訪問這些資料

如何訪問?

using system;

using system.componentmodel;

namespace testenum

//主要這個getdescription()方法,看不懂沒關係,如何呼叫

static

class

enumextensions

}}

呼叫

string str =  name.boob.

getdescription()

;//需要呼叫的地方呼叫

乙個特性不夠,能再加乙個嗎?

可以加乙個繼承自attribute 的類

public

class

datatest

:attribute

public

datatest

(string data)

public

datatest()

}

加完了自定義特性後你就會發現可以加了。。

[

description

("鮑勃")]

[datatest

("中文3級")]

boob,

[description

("馬宇")]

[datatest

("中文2級")]

jackma,

[description

("陳龍")]

[datatest

("中文1級")]

jackchan,

[description

("麗莎")]

[datatest

("中文2級")]

lisa,

[description

("保羅")]

[datatest

("中文2級")]

poro

就變成了這樣

訪問也得加乙個

public

static

string

getdata

(this

enum val)

呼叫

string str = name.boob.

getdescription()

;string dstr = name.boob.

getdata()

;

以上就是enum 加+自定義特性

不夠可以隨時自己加。

可以測試玩玩,據說反射浪費資源。

完整**

using system;

using system.componentmodel;

namespace testenum

public

class

datatest

:attribute

public

datatest

(string data)

public

datatest()

}static

class

enumextensions

public

static

string

getdata

(this

enum val)

}}

ps:可以宣告obect型別attribute.子類。 那。。。。。可發揮空間就大了。

C 列舉高階應用

我們經常使用列舉,但是可能只是一些簡單的應用,其實在我們的專案中用到的 下拉列表 model屬性型別等,都可以利用列舉更好的實現。定義列舉 public enum departmenteum 1 下拉列表使用列舉資料來源 繫結部門 var deptlist enumhelper.getcachedd...

iOS之列舉用法

列舉是c語言中的一種基本資料型別,是乙個 被命名的整型常量 的集合,它不參與記憶體的占用和釋放,我們在開發中使用列舉的目的只有乙個,那就是為了增加 的可讀性 舉個例子,我們想要在開發中根據四季的變化做不同的操作,我們首先想到的可能會是定義乙個int型變數,通過為該變數賦不同的值來表示四季 e.g.1...

python 高階語法與用法 列舉的簡單用法

1 列舉 from enum import enum class vip enum yellow 1green 2balck 3red 4 print vip.balck print type vip.balck running python u users anson documents proj...