我需要幫助解決我應用程序中的問題。 在我的應用程序中,當我使用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. 是否列表<T>默認爲可序列化的?
- 8. 獲得式IRepo <T>當我有對於T
- 9. 是否有可能獲得參考值?
- 10. 虛擬〜T(){}和虛擬〜T()=默認值之間的區別;
- 11. 爲InArgument提供默認值<T>
- 12. T-SQL - 位輸出參數默認值
- 13. 是否有可能在t-sql中沒有參數的函數?
- 14. 是否有可能在單個List中有Thread.Sleep()<T> ForEach?
- 15. 錯誤語法=默認(T)
- 16. 是否有可能與默認colModel
- 17. 是否可以從Vec <T>創建Arc <[T]>?
- 18. 是否有可能將jQuery默認值從display:block更改爲display:inline-block切換時?
- 19. 是否有可能使用JSONLib從getString中獲得空值
- 20. 如何在T是動態的運行時從Entity-Framework獲得ObjectSet <T>?
- 21. 是否有'newtype T = MkT(T - > T)`的用例?
- 22. 從默認值鏡頭獲得可能性
- 23. 是否有可能有PARAMS Func鍵<T>
- 24. 是否有可能擁有一個屬性爲IEnumerable <T>?
- 25. std :: vector :: push_back(T &&)在返回T &&的函數直接傳遞時創建T的默認構造值
- 26. mysql默認值NULL「unchageble」 - 是否有可能?
- 27. 刪除\ t \ t \ t從樣本\ t \ t
- 28. 哪個C++功能可以確保從選項<T>中提取T&T?
- 29. 是否有可能從Request.Form獲得更多的價值?
- 30. DDS TIMFMT。是否有可能獲得hh:mm?
感謝您的回答。您的答案解決了我的問題,但我只是想了解爲什麼在將它投射到普通類型「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