C 自定義列舉類的實現

2021-05-28 05:39:53 字數 1382 閱讀 2352

乙個最簡單的列舉類

public enum ***

male=0,

female=1

然而使用或繫結時需要中文,解決辦法有以下幾種:

1.public enum ***

男人=0,

女人=1

2.(參考他人)

public   enum   ***enum:int 

private   string   get***enumcnname(***enum   ***) 

; return   snames[(int)***]; 

}3.直接在用的時候寫個switch方法

但個人感覺都不是很好,所以結合網上資料,寫了個撲克花色的自定義列舉類:

//public enum enumcardmark

//public class enumcardmark

}private string _enum_name;

public string enum_name

}private enumcardmark(int value, string name)

public static readonly enumcardmark nomark = new enumcardmark(0, string.empty);

public static readonly enumcardmark heart = new enumcardmark(1, "紅桃");

public static readonly enumcardmark diamond = new enumcardmark(2, "方塊");

public static readonly enumcardmark spade = new enumcardmark(3, "黑桃");

public static readonly enumcardmark clubs = new enumcardmark(4, "草花");

public static listenumcardmarklist = new list;

public static explicit operator enumcardmark(int value)

}public static explicit operator int(enumcardmark value)

public enumcardmark copy()

}這樣用起來的時候非常方便,要繫結到combobox或dropdownlist等控制項的時候直接繫結到list,也實現了列舉的型別轉換,並且多了中文屬性。個人還是比較傾向這種寫法的。

只是要注意的是.net 自帶的列舉是值型別而這時是引用,不過使用起來沒影響,因為這個類內屬性不能被賦值。

自定義列舉

在效能優化中,列舉的每乙個都是乙個例項,比較耗記憶體,採用自定義註解能很好的解決這個問題 public class shape 表示表示需要在什麼級別儲存該注釋資訊,用於描述註解的生命週期 retention retentionpolicy.runtime public inte ce model ...

C 如何實現自定義類

pragma once include include using namespace std class csvitem csvitem const csvitem item void operator const csvitem item public string lock time 作業上鎖...

C 實現自定義string類

在一些c 筆試題裡,會有這樣一道題,那就是讓你自己實現乙個簡單的string類。自己在面試的時候就遇到過這個題。在這裡說一下自己是怎麼做的。主要包含一些基本的操作,建構函式 拷貝建構函式和析構函式。pragma once include using namespace std class mystr...