如果我們在C#中沒有這個特性,我們如何在C#中實現可空類型?可空類型的實現沒有C#的空值特徵
9
A
回答
5
你可以用本機類型爲結構(簡單的例子,給你一個想法,未經檢驗的,很多改進的餘地):
public struct NullableDouble {
public bool hasValue = false;
private double _value;
public double Value {
get {
if (hasValue)
return _value;
else
throw new Exception(...);
}
set {
hasValue = true;
_value = value;
}
}
}
很顯然,你不會得到新的C#版本的語法糖,即你必須使用
(見Andreas的評論。)myNullableDouble.hasValue
而不是
myNullableDouble == null
等。
0
可爲空是泛型類型。如果沒有泛型,不可能實現這樣的可爲空並且沒有意義。
0
如果不將業務規則附加到數據類型中的現有值,那麼您無法進行此操作。例如。 int.MinValue可以用作佔位符,但是如果你需要這個值呢?如果你有一個所有值都是正數的規則,它可以工作,但不是「可空」。
10
相關問題
- 1. 實現具有相關特徵類型的特徵
- 2. C++類型特徵
- 3. 在C++中實現is_same_type類型特徵的程序
- 4. .NET如何實現可空類型?
- 5. 如何實現任何可迭代類型的特徵?
- 6. 後面的實現(可爲空值類型).HasValue
- 7. 是否有可能實現可空類型一樣NullableOfInteger在VB6
- 8. C#可爲空類型和值屬性
- 9. C++:has_trivial_X類型特徵
- 10. Rust是否具有所有實體「繼承」或實現的類型或特徵?
- 11. 可空的複雜類型的值
- 12. 實現尺寸的特徵
- 13. 爲什麼我的Matlab特徵臉實現中有很多零特徵值?
- 14. sizeof(T)值的標準類型特徵
- 15. 無法找到關聯類型的特徵實現
- 16. 解決超載限制(實現幾種類型的特徵)
- 17. 不可空值轉換爲可空類型的基本知識
- 18. 什麼是C#中的可空類型?
- 19. C#中的可空類型轉換?
- 20. 什麼是C#中的可空類型?
- 21. C#可空類型的問題
- 22. 爲大型陣列類型實現調試特徵
- 23. 如何修改可空類型的值?
- 24. NHibernate類型沒有實現
- 25. Ruby - 有沒有辦法獲得一個特徵類的實例?
- 26. 如何實現MFCC特徵的K均值聚類算法?
- 27. 有沒有辦法獲得特徵的類型名稱?
- 28. 可爲空的值類型只是包裝常規值類型?
- 29. 有沒有一種方法來實現遍歷所有引用類型的迭代器的特徵?
- 30. 在C#中的名稱空間之間強制實現類型可見性
你可以使用比較 - 只要你重寫例如。或者實現正確的界面 – 2010-02-04 13:26:17