C# ?和??使用讲解

简介: 原文:C# ?和??使用讲解场景1:使用?定义可空类型 众所周知,C#中的值类型是不可以为null的,如果必须为null,则需要将变量定义为可空类型,如下所示: int? age = null; 场景2:使用?检查null值 一般我们写代码时,为了避免代码出现空异常System.


场景1:使用?定义可空类型

众所周知,C#中的值类型是不可以为null的,如果必须为null,则需要将变量定义为可空类型,如下所示:

int? age = null;

场景2:使用?检查null值

一般我们写代码时,为了避免代码出现空异常System.NullReferenceException,都会写很多的判断语句

Address address = null;
if (address != null)
{
   Console.WriteLine(address.PostCode);
}

Console.ReadLine();

在C#的新语法中,我们可以通过?来检查null值,这样可以减少很多不必要的判断

Address address = null;
var postCode = address?.PostCode;
Console.WriteLine(postCode);

Console.ReadLine();

场景3:使用??设置默认值

在写代码过程中,经常会碰到当变量为null值设置默认值的情况,原来的写法可能是这样的:

int? age = null;
if (!age.HasValue)
{
   age = 18;
}

Console.WriteLine(age); // 输出18

Console.ReadLine();

在C#的新语法中,可以通过??来设置默认值,如果变量值为null,取??右边的值,如果不为null,取变量的值

int? age = null;

Console.WriteLine(age ?? 18); // 输出18

age = 20;

Console.WriteLine(age ?? 18); // 输出20

Console.ReadLine();
目录
相关文章
|
8月前
|
数据处理
【报错】value.toFixed is not a function
在处理数据时遇到`value.toFixed is not a function`错误,原因在于`value`是字符串类型而非数字。通过`typeof(value)`确认其为string。解决方法是先将`value`转换为Number类型,如使用`parseFloat()`,再执行小数位处理。
399 5
|
8月前
|
JavaScript 前端开发 算法
undefined与null的区别
在JavaScript中,undefined和null都表示变量未被赋值或值缺失,但它们在使用场景上有一些区别。 - **`语义不同`**:undefined表示一个变量未被赋值或者声明后未进行初始化。而null表示一个变量被明确地设置为无值或者表示空值的概念。 - **`类型不同`**:undefined是一种基本数据类型,而null是一个引用类型。 - **`条件判断`**:在条件判断中,使用if (variable === undefined)或者if (variable === null)可以进行区分。
|
8月前
|
JavaScript 前端开发
javascript中??和||的区别
javascript中??和||的区别
|
8月前
undefined == null 为ture ?
undefined 和 null 的语义和场景不同 ,值比较
86 0
|
JavaScript 安全 前端开发
null和undefined的区别有哪些?
相同点 1.null和undefined都是js的基本数据类型 2.undefined和null都是假值(falsy),都能作为条件进行判断,所以在绝大多数情况下两者在使用上没有区别
1244 2
null和undefined区别
null和undefined区别
77 0
|
JSON JavaScript 前端开发
undefined vs null
undefined vs null 如何产生undefined和null Null 判断运算符(??)的默认值 [es2020] undefined 和 null 没有任何属性 undefined 和 null的历史
340 0
|
前端开发 C++
error: implicit declaration of function ‘RAND_egd’ [-Werror=implicit-function-declaration]
error: implicit declaration of function ‘RAND_egd’ [-Werror=implicit-function-declaration]
134 0

热门文章

最新文章