EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
? null
: Convert.ToInt32(employeeNumberTextBox.Text),
私は頻繁に(それは列がNULL値を許可LINQツーSQL DBMLオブジェクトのプロパティだとしてEmployeeNumber
がNullable<int>
である)私自身は、このようなことをやりたいと思っ見つけます。残念ながら、コンパイラは、「nullとintの間に暗黙的な変換はありません」と感じています。どちらの型もnullを許容するintへの代入操作では有効ですがNullableの条件付き演算子代入<value>タイプ?
NULLでない場合は、.Text文字列で実行する必要があるインライン変換のため、ヌル結合演算子はオプションではありません。
私が知る限り、これを行う唯一の方法は、ifステートメントを使用し、そして/または2つのステップでそれを割り当てることです。この特定のケースでは、私はオブジェクトイニシャライザの構文を使用したいので、非常にイライラすることがわかります。この割り当ては初期化ブロックにあります...
もっと洗練されたソリューションを知っている人はいますか?
Eric Lippertの関連するブログエントリをチェックしてください:[タイプ推論の不具合、パート1](http://blogs.msdn.com/ericlippert/archive/2006/05/24/type-inference-woes-part -one.aspx) – CodesInChaos
[コンパイラエラー** CS0173 **](http://msdn.microsoft.com/en-us/library/vstudio/hb47kt2f%28v=vs.120%29.aspx)ここに私を連れて来ました。 – DavidRR