如果我們在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++中實現is_same_type類型特徵的程序
- 3. .NET如何實現可空類型?
- 4. 後面的實現(可爲空值類型).HasValue
- 5. 是否有可能實現可空類型一樣NullableOfInteger在VB6
- 6. C#可爲空類型和值屬性
- 7. C++:has_trivial_X類型特徵
- 8. 可空的複雜類型的值
- 9. 實現尺寸的特徵
- 10. 爲什麼我的Matlab特徵臉實現中有很多零特徵值?
- 11. 不可空值轉換爲可空類型的基本知識
- 12. 無法找到關聯類型的特徵實現
- 13. 解決超載限制(實現幾種類型的特徵)
- 14. C#中的可空類型轉換?
- 15. C#可空類型的問題
- 16. 什麼是C#中的可空類型?
- 17. 如何修改可空類型的值?
- 18. NHibernate類型沒有實現
- 19. 如何實現MFCC特徵的K均值聚類算法?
- 20. 有沒有辦法獲得特徵的類型名稱?
- 21. 可爲空的值類型只是包裝常規值類型?
- 22. 在C#中的名稱空間之間強制實現類型可見性
- 23. 的DataTable C#空列類型
- 24. C++ - 實現類方法/空洞
- 25. 在C#中實現GetHashCode。空值處理
- 26. 可以實現的特徵方法返回引用或擁有的值
- 27. VB.NET中的可空類型?
- 28. 如何將空值賦給C#中的非空類型變量?
- 29. 爲什麼對實現Fn特徵的特徵的引用不可調用?
- 30. 定義將特定行爲添加到實現特定特徵的類的多個特徵的最佳實踐
你可以使用比較 - 只要你重寫例如。或者實現正確的界面 – 2010-02-04 13:26:17