我的应用程序中的问题需要帮助。 在我的应用程序中,当我创建Default(T)并且我的泛型的类型是double时,我需要使用double.NotANumber。但我得到的是“0.0”。 它们是否能够获得我需要的价值????
答案 0 :(得分:2)
我想知道用T=Nullable<double>
来思考是否有助于你在这里处理;那么default(T)
是null
(或者至少是null-ish)。仍然不完全NaN
,但比0
更近,并且它会自然延伸到所有值类型。
答案 1 :(得分:1)
没有。 default(double)
将始终为0,并且您无法做任何改变。
你最接近的可能是编写一个单独的静态方法:
public static T GetDefaultValue<T>()
{
return typeof(T) == typeof(double) ? (T)(object) double.NaN : default(T);
}
然后,您需要调用该方法,而不是使用default(T)
。但这很糟糕:(