このようなコードを見ました
if(value == null || !(value is double || value is double?))
{
return value;
}
値が double の場合、値は double ですか? も真である必要があるため、コードを次のように変更できますか
if(value == null || !(value is double?))
{
return value;
}
このようなコードを見ました
if(value == null || !(value is double || value is double?))
{
return value;
}
値が double の場合、値は double ですか? も真である必要があるため、コードを次のように変更できますか
if(value == null || !(value is double?))
{
return value;
}
が であると仮定するvalueとobject、コードを次のように変更できます。
if (value == null || !(value is double))
{
return value;
}
valueが boxedの場合double?、常にnullまたは boxed のいずれかになりますdouble。
Nullable<double>はと同じタイプではありませんがdouble、そのnullDouble.Valueプロパティはdoubleです。あなたが含めたコードは、それがまたは
double?実際Nullable<double>にはであることを念頭に置いて、null 許容データ型で元の値の型を確認するために使用できます。GetTypeしたがって、同じテストを念頭に置いてください:
if (value == null || value.GetType() != typeof(double))
{
return value;
}
以来:
double A = 1; // A.GetType() = System.Double
double? B = 1; // B.GetType() = System.Double
Nullable<double> C = 1; // C.GetType() = System.Double
value == null最初の条件 ( ) がテストを短絡すると仮定すると、これは同じ結果になります。