Ich verwendete die Enum.IsDefined()
Methode für eine Zeichenfolge, aber ich bekomme False
in einer Situation, in der ich denke, ich sollte True
bekommen. Bitte überprüfen Sie den Code unten:Enum.IsDefined gibt false für Strings zurück
public enum YourEnum : int
{
Zero = 0,
One = 1
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(Enum.IsDefined(typeof(YourEnum), 1));
Console.WriteLine(Enum.IsDefined(typeof(YourEnum), 1.ToString()));
}
}
C# Fiddle Demo
Ergebnis:
True
False
Ich weiß nicht, warum sollte ich False
im zweiten Fall bekommen. Jede Hilfe wird geschätzt.
Das ist 'Enum.Parse()', das 'string' akzeptiert. 'Enum.IsDefined()' vergleicht die * Konstanten *, die in Ihrer 'enum' definiert sind, mit dem, was Sie übergeben. – haim770
In dieser Antwort ist ja das nicht so auf meine Hauptfrage bezogen, tatsächlich akzeptiert' Enum.IsDefined' 'object' als zweiter Parameter, sollte ich fragen, ob Do 'IsDefined' auch den Typ des zweiten Parameters überprüft? –