`

C#值类型后面加问号表示可为空null(Nullable 结构)

    博客分类:
  • C#
阅读更多

值类型后面加问号表示可为空null(Nullable 结构)

Nullable是.NET 2.0中新提供的一种用于标明一个值类型是否可以为空的技术。

  对于一个类型,如果既可以给它分配一个值,也可以给它分配空引用null(表示没有任何值),我们就说这个类型是可空的。

  因此,可空类型可表示一个值,或表示不存在任何值。例如,类似 String 的引用类型就是可空类型,而类似 Int32 的值类型不是可空类型。Nullable 结构支持将值类型扩展为可以为null,但不支持在引用类型上使用,因为引用类型本身就是可空的。

  因为值类型的容量只够表示适合于该类型的值,因此它不可为空;值类型没有表示空值所需的额外容量。

  例:public int? age;

 

 

等同 Nullable<int>
在 int 的基础上加入一个空值
设置值的写法 Arg = 22;
获取值的写法 Arg.Value;
判断非空的写法 Arg.HasValue

 

Age是一个属性,它的值是可空的整形值。也就是说类的age成员有可能是空的,没有初始化过。使用的时候需要对Age的返回值进行判断:
if (Age.HasValue)
    i = Age.Value;
else
    i = 0;

分享到:
评论

相关推荐

    详解c# 可空类型(Nullable)

    C# 可空类型(Nullable)是一种特殊的数据类型,可以表示其基础值类型正常范围内的值,再加上一个 null 值。这种类型非常有用,特别是在处理数据库和其他包含可能未赋值的元素的数据类型时。 C# 可空类型(Nullable...

    C# 可空类型分析(含程序代码)

    在C#编程语言中,可空类型(Nullable Types)是一个重要的特性,它允许开发者为原本不可为空的值类型(如int、bool等)赋予null值。这种能力在处理数据库数据或其他可能包含未定义值的场景时尤其有用。下面将详细...

    C#基础知识 全面解析可空类型

    因此,C# 2.0引入了可空类型,使得开发者可以为值类型赋予null值,从而实现与数据库设计的一致性。 **二、可空类型的定义与使用** 可空类型通过在类型后加上问号(?)来表示,例如`int?`。实际上,`int?`是`...

    C#中的问号(?号)用法小结

     为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符?来表示,表现形式为T?。  例:int?表示是可空的整形,DateTime?表示为可空的时间。  T?其实是System.Nullable(泛型结构)的缩写形式,也就意味...

    20110318-练习及可空类型

    在编程领域,可空类型(Nullable Types)是一个重要的概念,特别是在C#等强类型语言中。这个主题主要涉及如何处理可能为null的变量,以及如何有效地利用可空类型避免空引用异常。20110318-练习及可空类型的资料可能...

    C# 可空类型的具体使用

    C# 可空类型是指可以为空的对象类型,同时也是System.Nullable结构的实例。可空类型可以表示基础值类型正常范围的值,然后再加上一个null值。以下是C# 可空类型的详细使用介绍: 一、可空类型基础知识 可空类型...

    C#2.0 锐利体验系列课程(3):局部类型、空属类型、静态类

    在C# 2.0中,引入了可空类型系统,使得值类型(如int, double等)可以具有null值。在C#中,引用类型默认就可以为null,但值类型不能。为了使值类型支持null,我们可以在其后添加问号(?),创建一个可空的变量。...

    dotnet C# 警惕可空结构体的方法内部赋值无效.rar

    结构体默认不能为null,除非它们被声明为可空类型(Nullable),通过使用问号(?)后缀,如`int? nullableInt`。这个特性在处理可能不存在的值时非常有用,尤其是在数据库查询或者空值可能存在的情景下。 然而,可...

    浅谈C# 中的可空值类型 null

    在C#编程语言中,可空值类型(Nullable Types)是一个重要的特性,它允许开发者将null赋值给原本不支持null的值类型。这在处理可能不存在或未初始化的数据时非常有用。本篇文章将深入探讨C#中的可空值类型null。 ...

    C#可空类型用法分析

    在C#编程语言中,可空类型(Nullable Types)是一个重要的特性,它允许开发者为原本不支持null的值类型赋予null值。值类型,如int、double等,通常不允许存储null,因为它们总是包含实际的数值。然而,在某些场景下...

    C# 运算符 ?、??、?: 各种问号的用法和说明

    在C#编程语言中,问号运算符有多种不同的用法,它们分别是可空类型修饰符(?)、空合并运算符(??)以及三元运算符( ?: )。下面将详细解释这三种运算符的工作原理和应用场景。 1、可空类型修饰符(?) 在C#中,引用类型...

    C# null 合并运算符??(双问号)使用示例

    这个运算符在处理可空类型(nullable types)和可能返回null的对象引用时特别有用,能够帮助避免因null引用异常而引发的错误。 当`??`运算符的左操作数(即在其左侧的表达式)非null时,整个表达式的值就是左操作数...

    C#学习知识库2.0版.rarC#学习知识库2.0版.rar

    8. **空引用类型(Nullable Types)**:C# 2.0对可空类型进行了改进,通过问号运算符(?),如`int? myInt`,可以声明一个可以为null的整型变量。 9. **迭代器和yield break**:配合`yield return`,`yield break`...

    ChristmasWithTypes

    最后,关于可空值类型,C#从3.5版本开始引入了可空类型(Nullable Types)。这允许我们为原本不能为null的值类型(如int、double)赋予null值。在使用可空类型时,我们需要在类型后加上问号(?),如`int?`。这在...

Global site tag (gtag.js) - Google Analytics