このようなコードを見ました
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
最初の条件 ( ) がテストを短絡すると仮定すると、これは同じ結果になります。