专栏首页TheOneGIS空间站C#中的可空类型修饰符

C#中的可空类型修饰符

这里说明两个运算符: 可空类型修饰符(?): 官方叫做null-conditional Operators。 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符?来表示。表现形式为T?,其实T?等价于Nullable<T>。

空合并运算符(??): 官方叫做null-coalescing operator。 用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。 A ?? B表示如果A为null则返回B,否则返回A。

看一个示例:

using System;

namespace Test
{
    public class Program
    {
        public static void Main(string[] argc)
        {
            int? x = null; // Nullable<int> x = null;
            int? y = x ?? 10; // x == null ? 10 : x
            string str = null;
            int? z = str?.Length; // str == null ? null : str.Length
            Console.WriteLine("x = {0}", x);
            Console.WriteLine("y = {0}", y);
            Console.WriteLine("z = {0}", z);
        }
    }
}

输出:

x = 
y = 10
z = 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C# Command命令(行为型模式)+队列 实现事务,带异步命令重试机制和生命周期

    耦合是软件不能抵御变变化的根本性原因,不仅实体对象与实体对象之间有耦合关系(如创建性设计模式存在的原因),对象和行为之间也存在耦合关系.

    郑小超.
  • C# 多线程九之Timer类

    相信写过定时任务的小伙伴都知道这个类,非常的轻量级,而且FCL中大量的类使用了这个方法,比如CancellationTokenSource的CancelAfte...

    郑小超.
  • Java连接MnogoDb数据库

    添加:mongo-java-driver-3.2.2.jar   驱动地址:http://central.maven.org/maven2/org/mongod...

    黄林晴
  • Android 开发之 QQ变声功能实现

     在QQ中我们使用到的一个功能就是变声,QQ是使用FMOD实现的,那么同样的我们也使用FMOD让自己的应用可以变音

    黄林晴
  • ListView下拉刷新

    <dependency>   <groupId>com.huanglinqing</groupId>   <artifactId>RefreshListvi...

    黄林晴
  • 40个只有程序员才看得懂的段子

    1. 一程序员去面试,面试官问:“你毕业才两年,这三年工作经验是怎么来的?!”程序员答:“加班。”

    奋斗蒙
  • 【转】vscode调试运行c#详细操作过程

    //用于发布exe <RuntimeIdentifier>win10-x64</RuntimeIdentifier> 

    landv
  • 编程语言中,c#、Python、JavaScript哪一个更接近c语言?

    不要尝试比较几种编程语言的优劣,任何一种编程语言都有其存在的价值,适合的就是最好的,现在编程领域Python,JAVA等等发展势头非常迅猛,但并不意味着所有的企...

    程序员互动联盟
  • 使用c#,运用面向对象的思想构建的一个图书管理系统(无数据库)

    HUBU生信
  • Android 自定义常用Dialog

    compile 'com.huanglinqing:dialogutils:1.0.0'

    黄林晴

扫码关注云+社区

领取腾讯云代金券