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
转载于:https://www.cnblogs.com/lonelyxmas/p/11108238.html
C# 新特性 操作符单?与??和 ?. 的使用相关推荐
- html5新特性表单控件,老生常谈h5新特性1:(表单)
老生常谈h5新特性1:(表单) HTML5新特性 -- 十大新特性 (1)新的语义标签和属性 (2)表单新特性 (3)视频和音频 (4)Canvas绘图 (5)SVG绘图 (6)地理定位 (7)拖放A ...
- JDK1.5新特性、单例设计模式
Jdk1.5新特性 一,自动装箱与拆箱 Java有基本数据类型,在这些基本数据类型周围又有包装类.通常,我们需要将一种类型转换成另一种. 自动装包:基本类型自动转为基本数据类型包装类(int& ...
- 12c 新特性之单表恢复
首先要有个数据库完全备份 RMAN> list backup;List of Backup Sets ===================BS Key Type LV Size Device ...
- 19c新特性-rman单表恢复
前言 在12C之前,某张表被delete.update.insert并且提交后,我们可以在时间和undo允许情况下,通过flashback找回数据:如果表被drop,并且未带purge参数时,可以通过 ...
- HTML5新特性---Form表单前台通过正则表达式自动验证邮箱
在HTML5中Form表单中添加了许多新特性,下面为大家介绍一种form表单中的新属性pattern. pattern 属性规定用于验证 input 域的模式(pattern),模式(pattern) ...
- jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式
1.单例设计模式 1.概念: 设计模式:使用固有的流程或方式设计出来的类接口.枚举等元素 2.设计原则: 1.私有化构造方法[private.protected] 2.类中创建最终对象[唯一不能被赋值 ...
- c++语言自定义操作符,C++11新特性之自定义字面量
1.示例 C++11新标准中引入了用户自定义字面量,也叫自定义后缀操作符,即通过实现一个后缀操作符,将申明了该后缀标识的字面量转化为需要的类型.考察如下代码: long double operator ...
- html 表单自定义属性,HTML5基础知识汇总_(2)自定义属性及表单新特性
自定义属性data-* 说起这个属性,其实现在很常见了;怎么说呢,因为在一些框架都能看到他的身影!!! 比如Jquery mobile,里面非常频繁的使用了这个属性; 这个属性是哪里来的-.当然是跟随 ...
- (九)HTML5+CSS3新特性:语义标签、多媒体标签、表单、新增选择器、盒子模型、模糊、calc函数、过渡
本文仅用作学习记录,学习视频为B站的pink老师 文章目录 HTML5的新特性 HTML5新增的语义化标签 HTML5新增的多媒体标签 HTML5新增的input表单 HTML5新增的表单属性 CSS ...
- html5表单新特性
html5表单新特性 学习的笔记,记录备忘. 效果图: 代码: <!DOCTYPE html> <html><head><meta charset=" ...
最新文章
- 在web.xml文件中配置Servlet时,主要配置哪些信息?
- HTTP Continuation or non-HTTP traffic
- 【OpenCV学习】brg转换hsv函数
- caffe学习(五):cifar-10数据集训练及测试(Ubuntu)
- Java的native关键字
- 回旋矩形C语言,C语言程序设计100例之(27):回旋方阵
- 驱动框架6——linux内核的gpiolib学习
- 为什么长视频没有强算法推荐的产品
- 扫地机器人的特点描写_扫地机器人的特点是什么
- 美通企业日报 | 沃尔玛8.8购物节销售规模猛增;中通快递市场份额持续扩大
- 英式和美式的单词拼写差异详细对照表
- 性格木讷面试时如何脱颖而出?
- 再见Python你好C语言,再见,Python 2 你好,Python 3
- 肠道核心菌属——巨单胞菌属(Megamonas)
- Android 360全景开发(PanoramaGL)
- 学习TypeScrip2(任意类型)
- 小米 android 7.0彩蛋,手把手教你小米怎么刷入安卓7.0!
- postman 总结
- Mac文件管理工具:Path Finder
- ASP.NET中的配置文件