1.单问号(?)

1.1 单问号运算符可以表示:可为Null类型,C#2.0里面实现了Nullable数据类型

//A.比如下面一句,直接定义int为null是错误的,错误提示为无法将null转化成int,因为后者是不可以为null的值类型。
private int getNum = null; //B.如果修改为下面的写法就可以初始指为null,在特定情况下?等同于基础类型为Nullable。
private int? getNum = null;
private Nullable<int> getNumNull = null;

2.双问号(??)

?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。

//A.定义getNum为null,输出结果为0
private int? getNum = null;
Console.WriteLine(getNum ?? ); //B.定义getNum为1,输出结果为1
private int getNum = ;
Console.WriteLine(getNum ?? );

3. ?.如果为空不报错误,不为空原值输出

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
myFun(null); //
myFun("");// Person personA = new Person() { name = "chenyishi" };
Console.WriteLine(personA?.name); personA = null;
Console.WriteLine(personA?.name);//person==null,仍不会报错
} static void myFun(string argA)
{
Console.WriteLine(argA ?? ""); //argA==null,则输出123
}
} class Person
{
public string name { get; set; }
}
}

原文:

https://www.cnblogs.com/appleyrx520/p/7018610.html

https://www.cnblogs.com/chenyishi/p/8329752.html

C# 新特性 操作符单?与??和 ?. 的使用的更多相关文章

  1. 表单验证—html5新特性表单验证

    一.表单 <body> <section id="register"> <div><img src="images/logo.j ...

  2. H5表单新特性

    1.HTML5表单新特性之——新的input type <input type=" "> HTML5之前已有的input type: text.password.rad ...

  3. H5——表单验证新特性,注册模态框!

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. HTML5_01之表单新特性

    1.WebStorm快捷键: Ctrl+Alt+(向下方向键):快速复制当前行 Alt+(向上/下方向键):移动当前行 Ctrl+D:删除当前行 Ctrl+/:快速(取消)注释当前行 Ctrl+Alt ...

  5. HTML5 十大新特性(二)——表单新特性

    H5的表单新特性可以分为两大类. 一.10个input的type值 1.email:邮件输入域,在表单提交时提供简单的邮箱格式验证,并弹出一个提示窗口. 2.url:地址输入域,在表单提交时提供简单的 ...

  6. HTML5基础知识汇总_(2)自己定义属性及表单新特性

    自己定义属性data-* 说起这个属性,事实上如今非经常见了;怎么说呢,由于在一些框架都能看到他的身影!!! 比方Jquery mobile,里面非常频繁的使用了这个属性; 这个属性是哪里来的-.当然 ...

  7. html5新特性contenteditable 属性更容易实现动态表单

    介绍html5新特性的一个属性:contenteditable 作用域全局.所有的块标签都可以,例如:span.p.div.td等标签.但是,不可以作用域<br/>类型的标签. conte ...

  8. ES2020新特性链操作符 '?.'和'??'

    ES2020新特性,js中的可选链操作符?. 概述 回想一下,我们是如何访问可能含有空值(null或undefined)属性的嵌套对象,比如访问web api 返回结果的user详情,可以使用嵌套的三 ...

  9. HTML的表格标签,列表标签,表单标签,HTML5有哪些新特性

    欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页:CSDN主页-冰山一树Sankey 前端学习:学习地址:黑马程序 ...

随机推荐

  1. highreport报表工具功能介绍

    目前国产报表工具大部分都是Java版本,例如润乾和帆软,而C#写的报表工具国内还没有,介绍一款VS2010(C#)写的国产报表工具(highreport),采用类Excel设计,零代码实现复杂报表展示 ...

  2. Nezuko: 1 Vulnhub Walkthrough

    下载地址: https://www.vulnhub.com/entry/nezuko-1,352/ 虚拟机启动,设置IP地址DHCP获取 主机发现扫描: 主机层面扫描: ╰─ nmap -p1-655 ...

  3. inux 内存监控分析

    一.free 查看系统总的内存情况 第一部分Mem行: total 内存总数: 3768M used 已经使用的内存数: 3136M free 空闲的内存数: 632M shared 当前已经废弃不用 ...

  4. Android 仿真器 无法启动排查

    从命令行启动仿真器,可以查看其输出. Microsoft Windows [版本 10.0.18362.145] (c) 2019 Microsoft Corporation.保留所有权利. C:\U ...

  5. Jmeter录制后的脚本调优

    当我们通过badboy或者HTTP代理服务器的方式录制的脚本,会发现脚本杂乱无章,图片.css.html以及各种我们不关心的脚本,因此就需要针对录制后的脚本进行调优 1.去除图片.html/css等不 ...

  6. Path Manipulation 路径操作

  7. 好的js书写习惯

    1:单一判断 bad if (result) { console.log("秋叶"); } if (!result) { console.log("秋叶"); ...

  8. JSON字符串转Map的几种方法

    String json = "{"status":0,"result":{"location":{"lng": ...

  9. 单域MPLS 虚拟私有网络的整个详解配置过程(可跟做)

    1.PE1和P和PE2之间跑IGP协议 运营商里面首选的还是ISIS协议我们实验的话,用的是OSPF协议 R3的IP地址和OSPF配置 [R3]display ip int brief *down: ...

  10. 线上cpu使用率过高解决方案

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. 下面我们将一步步定位问题,详尽的介绍每一步骤的相关知识. 一.通过top命令定位占用cpu高的进程 执行top命令得到 ...