7

次のリターン

'double'と'<null>'の間に暗黙の変換がないため、条件式のタイプを判別できません。

aNullableDouble = (double.TryParse(aString, out aDouble) ? aDouble : null)

aDoubleでのラウンドトリップの代わりにaNullableBoolを使用できない理由は、aNullableDoubleが生成されたEntityFrameworkクラスのプロパティであり、アウトパーとして使用できないためです。

4

5 に答える 5

9
aNullableDouble = double.TryParse(aString, out aDouble) ? (double?)aDouble : null;
于 2008-09-17T14:13:28.433 に答える
7

構文を省略形ではなく完全な構文に吹き飛ばすだけです...読みやすくなります。

aNullableDouble = null;
if (double.TryParse(aString, out aDouble))
{
    aNullableDouble = aDouble;
}
于 2008-09-17T14:14:28.977 に答える
2

null 許容型を使用することの興味深い副作用は、省略形の IF を実際に使用できないことです。簡易 IF は、両方の条件から同じタイプを返す必要があり、どちらの場合も null にすることはできません。だから、それをキャストするか書き出す:)

于 2008-09-17T14:42:57.597 に答える
1
aNullableDouble = (double.TryParse(aString, out aDouble)?new Nullable<double>(aDouble):null)
于 2008-09-17T14:13:07.870 に答える
0

.NETはnull許容型をサポートしていますが、そのように宣言することにより、それらを少し異なる方法で処理する必要があります(当然のことながら、通常は値型であるものは一種の参照型です)。

自動生成されたクラスのセットの場合のように、null許容のdoubleと通常のdoubleの間で変換をやりすぎなければならない場合にも、これはあまり役に立たない可能性があります。

于 2008-09-17T14:15:11.143 に答える