C# 新特性 操作符单?与??和 ?. 的使用
原文:C# 新特性 操作符单?与??和 ?. 的使用

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 ?? 0);//B.定义getNum为1,输出结果为1
private int getNum = 1;
Console.WriteLine(getNum ?? 0);

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); // 123myFun("456");//  456
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 ?? "123"); //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

posted on 2019-06-29 23:05 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/11108238.html

C# 新特性 操作符单?与??和 ?. 的使用相关推荐

  1. html5新特性表单控件,老生常谈h5新特性1:(表单)

    老生常谈h5新特性1:(表单) HTML5新特性 -- 十大新特性 (1)新的语义标签和属性 (2)表单新特性 (3)视频和音频 (4)Canvas绘图 (5)SVG绘图 (6)地理定位 (7)拖放A ...

  2. JDK1.5新特性、单例设计模式

    Jdk1.5新特性 一,自动装箱与拆箱     Java有基本数据类型,在这些基本数据类型周围又有包装类.通常,我们需要将一种类型转换成另一种. 自动装包:基本类型自动转为基本数据类型包装类(int& ...

  3. 12c 新特性之单表恢复

    首先要有个数据库完全备份 RMAN> list backup;List of Backup Sets ===================BS Key Type LV Size Device ...

  4. 19c新特性-rman单表恢复

    前言 在12C之前,某张表被delete.update.insert并且提交后,我们可以在时间和undo允许情况下,通过flashback找回数据:如果表被drop,并且未带purge参数时,可以通过 ...

  5. HTML5新特性---Form表单前台通过正则表达式自动验证邮箱

    在HTML5中Form表单中添加了许多新特性,下面为大家介绍一种form表单中的新属性pattern. pattern 属性规定用于验证 input 域的模式(pattern),模式(pattern) ...

  6. jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式

    1.单例设计模式 1.概念: 设计模式:使用固有的流程或方式设计出来的类接口.枚举等元素 2.设计原则: 1.私有化构造方法[private.protected] 2.类中创建最终对象[唯一不能被赋值 ...

  7. c++语言自定义操作符,C++11新特性之自定义字面量

    1.示例 C++11新标准中引入了用户自定义字面量,也叫自定义后缀操作符,即通过实现一个后缀操作符,将申明了该后缀标识的字面量转化为需要的类型.考察如下代码: long double operator ...

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

    自定义属性data-* 说起这个属性,其实现在很常见了;怎么说呢,因为在一些框架都能看到他的身影!!! 比如Jquery mobile,里面非常频繁的使用了这个属性; 这个属性是哪里来的-.当然是跟随 ...

  9. (九)HTML5+CSS3新特性:语义标签、多媒体标签、表单、新增选择器、盒子模型、模糊、calc函数、过渡

    本文仅用作学习记录,学习视频为B站的pink老师 文章目录 HTML5的新特性 HTML5新增的语义化标签 HTML5新增的多媒体标签 HTML5新增的input表单 HTML5新增的表单属性 CSS ...

  10. html5表单新特性

    html5表单新特性 学习的笔记,记录备忘. 效果图: 代码: <!DOCTYPE html> <html><head><meta charset=" ...

最新文章

  1. 在web.xml文件中配置Servlet时,主要配置哪些信息?
  2. HTTP Continuation or non-HTTP traffic
  3. 【OpenCV学习】brg转换hsv函数
  4. caffe学习(五):cifar-10数据集训练及测试(Ubuntu)
  5. Java的native关键字
  6. 回旋矩形C语言,C语言程序设计100例之(27):回旋方阵
  7. 驱动框架6——linux内核的gpiolib学习
  8. 为什么长视频没有强算法推荐的产品
  9. 扫地机器人的特点描写_扫地机器人的特点是什么
  10. 美通企业日报 | 沃尔玛8.8购物节销售规模猛增;中通快递市场份额持续扩大
  11. 英式和美式的单词拼写差异详细对照表
  12. 性格木讷面试时如何脱颖而出?
  13. 再见Python你好C语言,再见,Python 2 你好,Python 3
  14. 肠道核心菌属——巨单胞菌属(Megamonas)
  15. Android 360全景开发(PanoramaGL)
  16. 学习TypeScrip2(任意类型)
  17. 小米 android 7.0彩蛋,手把手教你小米怎么刷入安卓7.0!
  18. postman 总结
  19. Mac文件管理工具:Path Finder
  20. ASP.NET中的配置文件

热门文章

  1. button与submit
  2. 【转】 Apache分析脚本
  3. 2010年3月份第三周51aspx发布WinForm源码
  4. 这 8 个 Python 技巧让你的数据分析提升数倍!
  5. lightgbm algorithm case of kaggle(下)
  6. 如何成为一名卓越的数据科学家-桃树七剑之二:数据准备
  7. matlab练习程序(对应点集配准的四元数法)
  8. 读书笔记 - 《漫威宇宙》
  9. Oracle PL SQL完全自学手册pdf
  10. C#小方法PadLeft 和 PadRight