我需要幫助解決我應用程序中的問題。 在我的應用程序中,當我使用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