Frage

Ist es möglich, den Compiler automatisch konvertieren meine Enum-Werte in Strings, damit ich ausdrücklich die ToString-Methode jedes Mal aufrufen vermeiden. Hier ist ein Beispiel dafür, was Ich mag würde tun:

enum Rank { A, B, C }

Rank myRank = Rank.A;
string myString = Rank.A; // Error: Cannot implicitly convert type 'Rank' to 'string'
string myString2 = Rank.A.ToString(); // OK: but is extra work
War es hilfreich?

Lösung

Nein. Ein ENUM ist seine eigene Art, wenn Sie es auf etwas anderes konvertieren möchten, müssen Sie einige Arbeit tun.

Allerdings, je nachdem, was Sie mit ihm tun, werden einige Aufgaben nennen ToString () auf sie automatisch für Sie. Zum Beispiel können Sie tun:

Console.Writeline(Rank.A);

Andere Tipps

Sie sind wahrscheinlich nicht für Aufzählungen suchen selbst, sondern eine Liste von String-Konstante. Es kann besser auf Ihre Bedürfnisse in einigen Szenarien passen.

Verwenden Sie stattdessen:

public static class Rank
{
   public const string A = "A";
   public const string B = "B";
   public const string C = "C";
}

Nein, aber zumindest kann man die Dinge mit Aufzählungen tun, die ihre ToString() Methoden aufrufen, wenn Sie ihre String-Wert verwenden können müssen, z.

Console.WriteLine(Rank.A); //prints "A".

Die richtige Syntax sollte

myRank.ToString("F");

[Achtung, hack] nicht sicher, ob diese böse ist, mir scheint es, einen vernünftigen Kompromiss.

var myEnumAsString = MyEnum+""; Console.WriteLine(myEnumAsString); //MyEnum

Dies wird implizit ToString Kraft ()

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top