`
RednaxelaFX
  • 浏览: 3047985 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

原来C#里配合Nullable类型还有个??运算符……

    博客分类:
  • C#
阅读更多
失败了,这个运算符居然一直没注意到。虽说第一次看到就直观的知道它的语义,但……
读书不仔细真是罪过 T T

??运算符:双目运算符,左操作数可以是一个Nullable<T>类型,右操作数是其对应的非nullable类型的值;对引用类型也有效。主要用于Nullable<T>类型对相应的非nullable类型变量赋值;这样的赋值如果不使用??运算符则会带来编译时错误。

例子:
int? i;
int j = i ?? -1;

string s = null;
string s2 = s ?? "Unspecified";


Nullable<T>类型是个值类型,这点千万要注意。因为是值类型,所以永远不会为null;即便对一个Nullable<T>类型的变量赋值null,也不过是得到了一个包装着null的值类型而已。
分享到:
评论
1 楼 ray_linn 2010-02-05  
很正常,这个很少人用的。

相关推荐

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

    ):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空,例如:string str=null;是正确的。int i=null;编译器将报错。为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符?来表示...

    C#中“?”和“??”的区别

    当我们声明一个可空类型时,C#编译器实际上会将其转换为`System.Nullable&lt;T&gt;`类型,其中`T`是我们原始的值类型。 ##### 底层实现 可空类型实际上是通过`System.Nullable&lt;T&gt;`类实现的。这个类内部包含了一个`T`类型...

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

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

    详解c# 可空类型(Nullable)

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

    c# 空合并运算符“??”的使用详解

    在理解这个运算符之前,我们首先要明白C#中的可空类型(nullable types)和引用类型。 在C#中,基本类型如int、double等是不可空的,而引用类型如类实例是可以赋值为null的。对于那些设计为可能为null的值类型,...

    c# C#中的日期类型如何赋空值?

    首先,C#中的DateTime类型是一个结构,而不是引用类型,这意味着它没有默认的“null”状态。当你声明一个DateTime变量但未初始化时,它的值会默认设置为DateTime.MinValue。DateTime.MinValue表示公元1年1月1日的00:...

    有关C#可空类型的几个例子(源代码)

    在C#编程语言中,可空类型(Nullable Types)是一个重要的特性,它允许我们为原本非可空的值类型(如int、double等)赋予null值。这在处理数据库、XML或其他可能返回null的场景中非常有用。本教程将通过几个实例深入...

    C# 类型基础介绍html格式

    C# 类型基础是编程语言C#中的核心概念,它涉及到变量、数据类型、值与引用类型、装箱与拆箱、以及类型转换等多个方面。理解这些基础将有助于你更好地编写高效、可靠的C#代码。 首先,我们来讨论C#中的数据类型。C#...

    Nullable转换问题

    本文将通过一个具体的示例来详细介绍`Nullable`类型的使用及其转换方法。 #### Nullable基本概念 在C#中,所有的值类型(如int、bool等)默认情况下是不能赋值为null的。然而,在某些场景下,我们需要能够表示一个...

    C#API官方手册下载

    C# 8.0引入了默认接口实现和 nullable 引用类型等。 十、C#与.NET Framework / .NET Core C#是.NET平台的核心编程语言,可用于构建跨平台的应用程序。.NET Framework提供了丰富的类库,而.NET Core是一个轻量级、高...

    C#难点逐个击破(8):可空类型System.Nullable

    在C#编程语言中,可空类型(System.Nullable)是一个重要的特性,它允许开发者为原本不可为空的值类型(如int、double等)赋予null值。这个特性在处理不确定的数据或者在数据库交互(如ADO.NET)时非常有用。在本文...

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

    在C#编程语言中,可空类型是一个非常重要的特性,特别是在处理可能包含null值的数据时。自C# 2.0版本开始,引入了可空类型以解决值类型不能为null的问题,从而更好地与数据库或其他允许null值的系统集成。 **一、可...

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

    `声明了一个可空整型变量,这实际上是在声明`System.Nullable&lt;int&gt;`类型。同理,`DateTime?`表示可空的日期时间类型。这种机制允许我们为原本不能赋值为null的类型提供一个“无值”状态。在使用可空类型时,需要注意...

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

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

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

    在.NET框架中,C#是一种常用的编程语言,它在处理数据类型时提供了丰富的特性。本资源包主要关注的是“可空结构体”在方法内部赋值的问题,这可能对开发者在编写C#代码时造成困扰。我们将深入探讨这个问题,以及如何...

    Effective C# 中文版改善C#程序的50种方法

    5. **理解`null`与`Nullable&lt;T&gt;`**:C#中的`null`用于引用类型,而`Nullable&lt;T&gt;`可以用于值类型,允许表示“无值”。 6. **使用扩展方法增强类型功能**:扩展方法允许你在不修改原有类的情况下向其添加新方法,提供...

    c#一些常用实用技巧

    8. **异构集合解包**:C# 7.0还支持异构集合的解包,方便一次性处理多个类型不同的元素。例如: ```csharp (int a, string b, double c) = (1, "two", 3.0); ``` 9. **空条件运算符**:`?.`运算符可以安全地访问...

Global site tag (gtag.js) - Google Analytics