`
RednaxelaFX
  • 浏览: 3019221 次
  • 性别: 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# 可空类型(Nullable)

    C# 单问号 ? 与 双问号 ?? ? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据...C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基

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

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

    Nullable转换问题

    用例子的形式详解了Nullable的用法

    ELinq 是一个轻量简单易用的开源Linq ORM数据访问组件,支持Nullable类型和枚举类型.zip

    ELinq 是一个轻量简单易用的开源Linq ORM数据访问组件,支持Nullable类型和枚举类型,支持根据实体类自动建库建表建关系,支持根据数据库通过T4模版自动生成实体代码,对Linq的谓词提供了完美的支持,旨在让绝大部份...

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

    null值用来表示数据类型未被赋予任何值,它是一种引用类型;void表示没有类型,或者说是没有任何值。null与void的区别可以认为void是根本没有,而null是一个空箱子,里面什么都没有。

    javax Nullable 标签的jar

    使用javax Nullable注解必须使用的jar包

    c#是什么呢?初学者看看吧

     4、 局部类型:局部类型允许我们将一个类的代码分别写在不同的cs文件中。最典型的应用就是使用VS2005创建Form文件时,VS会自动将系统生成的代码与用户代码分开。局部类型通过partial关键字来声明。  5、 空属类型...

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

    但是,利用 C# 定义的一个修饰符,可将一个变量声明为一个可空(nullable)值类型。可空值类型在行为上与普通值类型相似,但可以将一个 null 值赋给它。如下所示: 代码如下:int? a = null; // 合法 当把一个变量...

    Laravel开发-nullable

    Laravel开发-nullable 对对象进行链调用,无论对象是否为空

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

    Nullable,读作“可空的 ...在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义。

    C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers

    C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers English | 2017 | ISBN-10: 1491988533 | 234 pages | PDF + EPUB + MOBI(conv) | 2 Mb When you need answers for programming with C# 7.0, this ...

    .NET中可空值类型【NullableT】实现原理

    为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable类型,也可简写为T?。但是Nullable自身是结构体,也是值类型,那么它是如何实现将null赋值给值类型的呢? 下面通过自定义一个可空值类型来讲解Nullable...

    Laravel开发-laravel-nullable

    Laravel开发-laravel-nullable Laravel 5-向模型添加可空列

    Exploring Advanced Features in C#-.pdf

    • Look at features of C# 8 such as nullable reference types, recursive patterns, ranges, indices, switch expressions, and more • Create responsive web apps using ASP.NET MVC. Using SASS, jQuery, ...

    Programming C# 8.0_ Build Cloud, Web, and Desktop Applications

    You’ll get up to speed on .NET Core and the latest C# 8.0 additions, including asynchronous streams, nullable references, pattern matching, default interface implementation, ranges and new indexing ...

Global site tag (gtag.js) - Google Analytics