EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
? null
: Convert.ToInt32(employeeNumberTextBox.Text),
Je me surprends souvent à vouloir faire des choses comme ça (EmployeeNumber
est un Nullable<int>
car il est une propriété sur un LINQ to SQL DBML objet où la colonne autorise les valeurs NULL). Malheureusement, le compilateur estime qu '"il n'y a pas de conversion implicite entre" null "et" int ", même si les deux types sont valides dans une opération d'assignation à un int nullable par eux-mêmes.Affectation d'opérateur conditionnelle avec types <value> Nullable?
Opérateur de coalescing Null n'est pas une option autant que je peux voir en raison de la conversion inline qui doit arriver sur la chaîne .Text si elle n'est pas nulle. Pour autant que je sache, la seule façon d'y parvenir est d'utiliser une instruction if et/ou de l'assigner en deux étapes. Dans ce cas particulier, je trouve cela très frustrant parce que je voulais utiliser la syntaxe d'initialisation d'objet et cette affectation serait dans le bloc d'initialisation ...
Quelqu'un connaît une solution plus élégante?
Vérifiez l'article de blog connexe d'Eric Lippert: [Type inference woes, part one] (http://blogs.msdn.com/ericlippert/archive/2006/05/24/type-inference-woes-part -one.aspx) – CodesInChaos
[erreur de compilation ** CS0173 **] (http://msdn.microsoft.com/en-us/library/vstudio/hb47kt2f%28v=vs.120%29.aspx) m'a amené ici. – DavidRR