【问题标题】:Difference between decimal and decimal.value?十进制和十进制值之间的区别?
【发布时间】:2013-09-04 11:26:38
【问题描述】:

在访问我的 Linq to SQL 对象以检查空值时,我经常必须调用 Value 属性,否则会出现异常。有人可以解释一下这些似乎包装原始类型的数据类型(即十进制?、布尔?等...)?

【问题讨论】:

标签: linq-to-sql


【解决方案1】:

它们是Nullable<T> 类型的泛型,它们确实包装了原始类型。

为什么他们发明了短格式 int? is Nullable 似乎归结于简洁和简洁的基于 C 的语言开发人员之间的标准混淆。

decimal? total = null;

total.HasValue 将返回 false,它不会因空引用而崩溃

但是total.Value.ToString();会抛出异常,因为total的Value属性为null。

Value 和 HasValue 属性是只读的。

total = 10;

表示 total.Value 将返回 10.0,total.HasValue 将返回 true。

这是一个非常好的泛型,特别是对于数据库类型,但仍然没有得到简短的形式......

【讨论】:

    【解决方案2】:

    decimal? 是简写(等效于)nullable<decimal>,这意味着它可以设置一个值 nullbool?int? 等也是如此。

    当您的数据库字段允许空值时,这些值由 Linq 2 SQL 选择。否则,您将无法指示这些值应为 null

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 2015-01-25
      • 2018-08-16
      • 2021-06-12
      • 1970-01-01
      • 2018-07-26
      相关资源
      最近更新 更多