2016-11-26 2 views
0

Ich habe dieses Enum:Zurück den Text (String-Wert) eines ENUM-Wert

public enum Lang 
{ 
    English = 0, 
    Romaji = 1, 
    Kana = 2, 
    Kanji = 3, 
} 

Ich weiß, dass ich schreiben kann:

var a = Lang.English 
var b = a; 

und setzen b auf 0 jedoch gleich zu sein ist Gibt es eine Möglichkeit, dass ich b gleich "English" setzen kann, wenn a gegeben?

+0

Bitte klären. Nach meinem Verständnis würden die obigen Anweisungen bereits "b" auf "Lang.English" setzen, was einem ganzzahligen Wert von "0" entsprechen würde. – Codor

+1

Meinst du 'b.ToString()'? – rbm

+0

'var b = a.ToString()' – ColinM

Antwort

5

Im Wesentlichen eine enum ist eine Reihe von benannten Konstanten. Anstatt die Konstanten zu verwenden, verwenden Sie ihre Namen, um Ihren Code lesbarer zu machen.

Der Wert von b würde auf die benannte Konstante Lang.English und seiner Art eines string wäre nicht gleich sein, aber es wäre von Lang sein. So b zu einem int Gießen, würden Sie 0. bekommen

Allerdings gibt es eine Möglichkeit, dass ich gleich b einstellen auf „Englisch“, wenn gegeben ein?

Ja, können Sie Folgendes versuchen:

string b = Enum.GetName(typeof(Lang),Lang.English); 

Für eine Demo, haben Sie bitte einen Blick here

Verwandte Themen