Nullable Enum nullable-Typ Frage
Bekomme ich die folgenden Kompilierung Fehlermeldung mit dem folgenden Quellcode:
Kompilierungsfehler:
Typ des bedingten Ausdrucks kann nicht bestimmt werden, denn es gibt keine implizite Konvertierung zwischen " und 'MyEnum'
Quellcode
public enum MyEnum
{
Value1, Value2, Value3
}
public class MyClass
{
public MyClass() {}
public MyEnum? MyClassEnum { get; set; }
}
public class Main()
{
object x = new object();
MyClass mc = new MyClass()
{
MyClassEnum = Convert.IsDBNull(x) : null ?
(MyEnum) Enum.Parse(typeof(MyEnum), x.ToString(), true)
};
}
Wie kann ich diesen Fehler beheben?
mögliche Duplikate von Nullable-Typ Problem mit ?: Bedingte Operator
InformationsquelleAutor Michael Kniskern | 2009-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie müssen nur gegossen das Ergebnis
Enum.Parse
zuMyEnum?
. Dies ist der Fall mit nullable int-Werte zumindest. E. g.:Also:
Danke....Dass mein Problem gelöst.
Klar passiert das nur, weil Sie mit dem ternären operator
InformationsquelleAutor Luke Quinane
Gibt es einen syntax-Fehler in deinem code: die position des ':' und '?' muss ausgetauscht werden:
BTW:
soweit ich weiß, ist der empfohlene Weg ist die Verwendung einer enum-element mit dem Namen 'None' statt eine null enum, e.g:
und
InformationsquelleAutor M4N
Ich denke, Sie müssen nur gegossen das Ergebnis (MyEnum?) anstatt (MyEnum)?
InformationsquelleAutor