我需要帮助解决我应用程序中的问题。 在我的应用程序中,当我使用Default(T)并且我的泛型类型是double时,我需要使用double.NotANumber。但我得到的是“0.0”。 他们是一种获得我需要的价值的方式吗?当T = double时从默认值(T)中获得Double.NOTANUMBER,是否有可能?
1
A
回答
1
第default(double)
将始终为0,并且没有什么可以改变这一点。
你能来是写一个单独的静态方法最接近:
public static T GetDefaultValue<T>()
{
return typeof(T) == typeof(double) ? (T)(object) double.NaN : default(T);
}
你会那么需要调用,而不是使用default(T)
该方法。这是很讨厌的,虽然:(
2
我不知道如果在T=Nullable<double>
思维将帮助你处理在这里;然后default(T)
是null
(或者至少,空ISH)还是不太NaN
,但比0
接近,而且它。
相关问题
- 1. 是否有可能从T []获得IEnumerator <T>?
- 2. 当T不同时,是否有可能获得列表<T>的项目数?
- 3. 默认(T)与Activator.CreateInstance(T)
- 4. 默认值是什么(IEnumerable <T>)?
- 5. 是否有可能获得AngularJS认证?
- 6. Java:如何在SomeClass中设置“T”的默认值<T>?
- 7. 获得式IRepo <T>当我有对于T
- 8. 为InArgument提供默认值<T>
- 9. 是否有可能在t-sql中没有参数的函数?
- 10. 错误语法=默认(T)
- 11. 是否有可能使用JSONLib从getString中获得空值
- 12. 是否可以从Vec <T>创建Arc <[T]>?
- 13. 是否有可能拥有一个属性为IEnumerable <T>?
- 14. std :: vector :: push_back(T &&)在返回T &&的函数直接传递时创建T的默认构造值
- 15. 是否有可能从标量函数的结果中分配默认值
- 16. 哪个C++功能可以确保从选项<T>中提取T&T?
- 17. 是否有可能获得div中所有<input>的值?
- 18. 是否有可能在运行时从Select2获得minimumResultsForSearch
- 19. 通过差是否有可能组排彼此在T-SQL
- 20. 是否有可能创建一个通用的Session.QueryOver <T>?
- 21. C#:是否有可能返回一个IOrderedEnumerable <T>?
- 22. 是否有可能从GPS获取当前时间
- 23. T-SQL获得最大的价值
- 24. T-SQL - 获得价值两个日期
- 25. 为什么我不能有std ::可选<T>其中T是抽象的?
- 26. 是否有可能在rails中有条件的默认范围?
- 27. 是否有可能从Swift中的UITextField中获得UIPickerView和UIDatePicker?
- 28. 是否有可能获得MySQL中的表的整数值?
- 29. 是否可以将“\ t”分隔为char'\'+'t'
- 30. 从t统计得到一个p值
感谢您的回答。您的答案解决了我的问题,但我只是想了解为什么在将它投射到普通类型“T”之前为什么要投射double.NaN到Object? – Wilfrid 2010-07-27 12:33:35
并且在那里解释为什么我们不能改变默认的返回值? – Wilfrid 2010-07-27 12:34:42
@Wilfrid:关于泛型的转换规则非常棘手,我不会声称理解所有的设计决策 - 只是他们是必要的。至于为什么你不能改变默认的默认(T)总是返回“零值” - 即你从擦除内存到所有位为0的值。这就是数组的创建方式等。它便宜并统一。 – 2010-07-28 09:23:40