区别 “十进制”和“十进制”类型,何时使用它们中的任何一个

本文关键字:十进制 任何一 何时使 类型 区别 | 更新日期: 2023-09-27 18:30:49

谁能帮助我理解decimaldecimal?intint?之间的区别?

我应该什么时候使用它们以及使用它们中的任何一个有什么好处。

区别 “十进制”和“十进制”类型,何时使用它们中的任何一个

带有 ? 的数据类型为可为空的类型。它们也可以
保存空值查看此源链接

  • 可为 null 的类型表示可以分配 null 值的值类型变量。不能基于
    引用类型。(引用类型已支持 null 值。
  • 语法 T?(在 C# 中)是 System.Nullable 的简写,其中 T 是值类型。这两种形式是可以互换的。
  • 以与普通值类型相同的方式将值分配给可为 null 的类型,例如: C#:int? x = 10; or double? d = 4.108;

    VB.NET:Dim x As Nullable(Of Integer) = 10Dim d As Nullable(Of Double) = 4.108

  • 使用 System.Nullable.GetValueOrDefault 方法返回分配的值或基础类型的默认值,如果 该值为空,例如

    C#: int j = x.GetValueOrDefault();

    VB.NET:Dim j as Integer = x.GetValueOrDefault()

  • 使用 HasValue 和 Value 只读属性来测试 null 并检索值。

  • 如果变量包含值,则 HasValue 属性返回 true;如果变量为 null,则返回 false。
  • 如果分配了一个值,则 Value 属性返回一个值,否则将引发 System.InvalidOperationException。
  • 可为空的类型变量的默认值将 HasValue 设置为 false。值未定义。
    在 C# 4.0 中
  • 使用 ??(C#) 运算符,用于分配默认值,当分配
    当前值为 null 的可为 null 类型时将应用该默认值 到不可为空的类型,例如
int? x = null; 
int y = x ?? -1;
类型

后面的?描述它是可为空的。 int?decimal?Nullable<int>Nullable<decimal>的简写。

这允许变量保存其类型或空值。

? 形式只是表示它是一个可为空的值类型。这是Nullable<decimal>Nullable<int>的快捷方式。使用它的好时机是当您希望能够指示没有为该变量分配任何值时。

一个用例是,如果你有像DateTime这样的东西,你想指示你还没有给它赋值。您可以将其设置为 null,而不是将其设置为"魔术日期"(如 01/01/1970)。更直接!

相关文章: