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

Fin*_*ngs 0 c# nullable

谁能帮助我了解才知道之间的区别decimaldecimal?intint?

我何时应该使用它们以及使用它们中的任何一个是积极的.

Hab*_*bib 14

数据类型有?是可以为空的类型.它们也可以保存null值.
请查看此Source链接

  • 可空类型表示可以赋值为null的值类型变量.您无法基于
    引用类型创建可空类型.(引用类型已经支持null值.)
  • 语法T?(在C#中)是System.Nullable的简写,其中T是值类型.这两种形式是可以互换的.
  • 以与普通值类型相同的方式将值分配给可空类型,例如: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方法返回指定的值,如果值为null,则返回基础类型的默认值,例如

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

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

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

  • 如果变量包含值,则HasValue属性返回true;如果变量包含值,则返回false.
  • 如果分配了一个值,则Value属性返回一个值,否则抛出System.InvalidOperationException.
  • 可空类型变量的默认值将HasValue设置为false.价值未定义.
    在C#4.0中
  • 使用 ??(C#)运算符,用于指定当当前值为null的可空类型被分配
    给非可空类型时将应用的默认值,例如
int? x = null; 
int y = x ?? -1;
Run Code Online (Sandbox Code Playgroud)


Kha*_*han 6

?之后的类型描述,它可为空.int?并且decimal?Nullable<int>Nullable<decimal>.

这允许变量保持其类型或空值.