Nullable Enum type nullable question
J'obtiens l'erreur de compilation suivante avec le code source suivant:
Erreur De Compilation:
Type d'expression conditionnelle ne peut pas être déterminé, car il n'y a pas de conversion implicite entre " et "MyEnum'
Code Source
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)
};
}
Comment puis-je résoudre ce problème?
double possible de type Nullable problème avec ?: Opérateur conditionnel
OriginalL'auteur Michael Kniskern | 2009-01-08
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez juste besoin de jeter le résultat de
Enum.Parse
àMyEnum?
. C'est le cas avec nullable ints au moins. E. g.:Donc:
Merci....Qui a résolu mon problème.
Pour être clair, cela ne se produit que parce que vous êtes à l'aide de l'opérateur ternaire
OriginalL'auteur Luke Quinane
Il y a une erreur de syntaxe dans ton code: la position de ':' et '?' doit être échangés:
BTW:
autant que je sache, la méthode recommandée consiste à utiliser un enum-élément nommé 'None' au lieu de Nullable enum, e.g:
et
OriginalL'auteur M4N