可空类型 int?及?相关运算符

int?可空类型

值类型不能为null,所以出现了int?为可空类型,此时可以为Null

int与int?不能直接进行运算,必须用显示转换或者int?.value才可以进行运算

int? op1 = 5;
int op2 = 6;
//op1不能为null,否则会报错
int op3 = (int)op1 + op2;
int op4 = op1.value+op2;

当进行乘法运算时

int? op1 = null;
int? op2 = 10;
//对于除bool?外所有的简单可空类型,下述结果为null,意义为不能计算
int? op3 = op1*op2; 

??空接和运算符

选取第一个不是Null的值

int? op1 = null;
int result = op1*2 ?? 5;
//op1位null,所以结果为5

三元运算

如果?前bool类型为true,则返回第一个值,若为false,则返回第二个值

int? a =null;
int? b = 10;
//此时为false,所以值为b
b==null ? a : b 

?.运算符

double[] a = null;
int? count = a.Count(); //此时会报错,因为a为null

为了解决上述问题,采用?.运算符即可使返回值为null

double[] a = null;
//采用?.运算符,即可使得count值为null且不会报错
int? count = a?.Count(); 

原文地址:https://www.cnblogs.com/xt112233/p/10048236.html

时间: 2024-10-04 00:25:38

可空类型 int?及?相关运算符的相关文章

[C#基础知识系列]专题十:全面解析可空类型[转]

原文链接 主要内容: 1:空合并操作符(?? 操作符) ??操作符也就是"空合并操作符",它代表的意思是两个操作数,如果左边的数不为null时,就返回左边的数,如果左边的数为null,就返回右边的数,这个操作符可以用于可空类型,也可以用于引用类型,但是不能用于值类型(之所以不能应用值类型(这里除了可空类型),因为??运算符要对左边的数与null进行比较,然而值类型,不能与null类型比较,所以就不支持??运算符),下面用一个例子来掩饰下??运算符的使用(??这个运算符可以方便我们设置默

C#基础------可空类型 StringBuilder

class Program { static void Main(string[] args) { // StringBuilder 解决了字符串拼接产生大量的字符串临时对象 string s1 = "abc"; string s2 = "asd"; string s3 = "fghg"; StringBuilder sb = new StringBuilder(); sb.Append(s1); sb.Append(s2); sb.Append

C# 中可空类型

---恢复内容开始--- 可空类型 int? a=null 的本质其实是一个泛型类型Nullable 其中以下两个方法用于返回值 public T GetValueOrDefault() { return value; } public T GetValueOrDefault(T defaultValue) { return hasValue ? value : defaultValue; } 原文地址:https://www.cnblogs.com/xtide/p/8963573.html

以php中的自增自自减运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据

1 // 环境 2 // 3 // php版本 4 // PHP 7.0.33-0+deb9u1 (cli) (built: Dec 7 2018 11:36:49) ( NTS ) 5 // Copyright (c) 1997-2017 The PHP Group 6 // Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies 7 // with Zend OPcache v7.0.33-0+deb9u1, Copyrig

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

Kotlin---------------可空类型与? ?: ?. !!

可空类型主要是为了从编译层面尽可能的减少NPE. 在Kotlin中申明一个变量,如果类型后面不加?则不能直接给此变量赋值为null,在类型后面加上?就变成了可空类型,而可空类型可以直接赋值为null var name: String = null//Error:Null can not be a value of a non-null type String var name1: String? = null//可空类型,可以赋值为null 那么可空类型和普通的类型在使用上有什么区别呢,这就涉及

C# 可空类型

可以为null的类型赋其基础类型正常范围的值和null值. 例如:Nullable<Int32>可以赋值为-2147483618到2147483618之间任意值和null.(int?=null 或int?=9) 在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用. 例如,数据库中的布尔型字段可以存储值 . 例子说明: using System; namespace CalculatorApplication { class Nullables

【C#】可空类型(Nullable)

C# 可空类型(Nullable) C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. 例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值.类似的,Nullable< bool > 变量可以被赋值为 true 或 false 或 null.

C#可空类型 T?

可空类型概述 可空类型具有以下特性: 可空类型表示可被赋值为 null 值的值类型变量.无法创建基于引用类型的可空类型.(引用类型已支持 null 值.). 语法 T? 是 System.Nullable<T> 的简写,此处的 T 为值类型.这两种形式可以互换. 为可空类型赋值与为一般值类型赋值的方法相同,如 int? x = 10; 或 double? d = 4.108;. 如果基础类型的值为 null,请使用 System.Nullable.GetValueOrDefault 属性返回该