C#可空类型(Nullable)
C#:基础编程篇
本节知识
一:Nullable类
①:支持可分配有 null 的值类型。 无法继承此类。
②:命名空间:System
程序集:System.Runtime.dll, mscorlib.dll, netstandard.dll
③:方法
例如:
int ?num1 = null;double? num2 = new double?();if(num1==null){Console.WriteLine("num1为null");}if(num2==null){Console.WriteLine("num2为null");}
运行结果:
备注:默认情况下,所有引用类型(如 String)都可以为 null,但所有值类型(如 Int32)都不是,在C#和 Visual Basic 中,通过在值类型后使用 ? 表示法,将值类型标记为可以为 null。
二:Nullable < T >结构体
Nullable 类提供 Nullable 结构互补支持。
①:表示可分配有 null 的值类型。
②:命名空间:System
程序集:System.Runtime.dll, mscorlib.dll, netstandard.dll
③:构造函数,属性,方法,运算符
④:练习
Nullable<int> num3 = new Nullable<int>(3);if (num3.HasValue){Console.WriteLine(num2.Value);}else{Console.WriteLine("该值不是一个有效值");}
运行结果:
注意:Nullable.HasValue为false时,尝试访问 Value 属性将引发 InvalidOperationException异常。
Nullable<int> num2 = new Nullable<int>();Console.WriteLine(num2.Value);
⑤:装箱和取消装箱
⑥:int?和Nullable< int >是等价的
Nullable<int> num2 = new Nullable<int>(3);int? num3=3;Console.WriteLine(num2.Value+";"+num3.Value);Console.ReadLine();
运行结果:
源代码
三:Nullable适用版本
四:??是什么意思
int? num1 = null;int? num2 = 6;int num3;num3 = num1 ?? 3;//这里3就是预设值Console.WriteLine("num3={0}",num3);num3 = num2 ?? 3;Console.WriteLine("num3={0}", num3);Console.ReadLine();
运行结果:
备注:??的作用,就是防止出现null的情况,引用了一个预设值,如果我给的值是null就引用预设值,如果我给的值不是null,就用我给的值。
相关链接:
菜鸟教程
Nullable< T > ApI
C#可空类型(Nullable)相关推荐
- 可空类型Nullable
Nullable类型: 值类型变量默认为0,不可空,为了使它可空,出现了Nullable类型,类型前面加? 变为引用类型 值类型是没有null值的,比如int,DateTime,它们都有默认值.举个例 ...
- 使用可空类型(Nullable)
可空类型Nullable<T>是.NET Framework 2.0中新增的类型,用它声明的值类型,除了存值之外,还可以表示为null,即该类型的变量可以为空. 下面是Nullable结构 ...
- 了解下C# 可空类型(Nullable)
C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. C# 单问号 ? 与 双问号 ?? ? 单问号用于对 int ...
- C#可空类型(Nullable Types)
在讨论可空类型前,先回顾一下.NET 对于类型的定义: ".NET 中类型分为值类型和引用类型,值类型不能为空,引用类型可为空"; 在这样的前提下,所有值类型都赋予了一个初始值 ...
- 在C#2.0中使用Nullable可空类型(转帖)
在C#2.0中使用Nullable可空类型 在C#1.x的版本中,一个值类型变量是不可以被赋予null值的,否则会产生异常.在C#2.0中,微软提供了Nullable类型,允许用它定义包含null值( ...
- 分析 C# 2.0 新特性 -- 空类型(Nullable Types)
分析 C# 2.0 新特性 -- 空类型(Nullable Types) 在讨论C# 2.0 空类型前,先回顾一下.NET 1.0和.NET 1.1对于类型有下面这样的定义: ".NET ...
- C#基础入门教程-可空类型(Nullable)
目录 C#可空类型(Nullable) C# 可空类型(Nullable) 实例练习 Null 合并运算符( ?? ) 实例练习 C#可空类型(Nullable) ? : 单问号用于对 int,dou ...
- [C#基础知识系列]专题十:全面解析可空类型
引言: C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一直都在思考如何来分享这篇文章的,因为刚 ...
- 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)
文章目录 I . Kotlin 变量总结 II . Kotlin 非空变量 III . 非空变量不能赋空 IV . lateinit 关键字 V . lateinit 初始化判定 VI . Kotli ...
- C#学习笔记(六):可空类型、匿名方法和迭代器
可空类型 为啥要引入可空类型? 在数据库中,字段是可以为null值的,那么在C#中为了方便的操作数据库的值,微软引入了可空类型. 声明可空类型 我们可以使用两种方法声明一个可空类型: 1 Nullab ...
最新文章
- Solaris10 for x86网卡替换配置
- c语言是非结构化程序设计语言,第章_结构化程序设计基础和C语言的控制结构(fb).ppt...
- java连接weblogic_java学习:weblogic下JNDI及JDBC连接测试(weblogic环境)
- 51Nod 1007 正整数分组(01背包)
- VMProtect SDK+ASProtect SDK保护
- 我的世界java有三叉戟杀手吗_我的世界-三叉戟竟能这么用 这样得怪物头颅长见识了!...
- PHP 每小时抽奖,php分时间段的抽奖程序代码
- 尚学堂java 参考答案 第八章
- 【Kafka】kafka 消费者组静态成员(static consumer member)
- Python自动化开发从浅入深-进阶(socketServer)
- 错误解决:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to star
- splitcontainer控件删除方法
- 【Love2d从青铜到王者】第十五篇:Love2d之角度和距离(Angles and distance)
- Prolog编程求解图搜索问题
- Mermaid语法绘制图表
- 记一次数据结构与算法作业:利用循环和递归输出1-N的正整数的程序分析比较
- 【26】地图可视化:基于 Echarts + Java SpringBoot 的动态实时地图组件 - 点气泡流向组合区域三级下钻地图
- python音乐可视化效果_Python 一个漂亮的音乐节奏可视化方案!我觉得可行
- 军武科技获5000万元B轮融资 男性用户占比达到90%以上...
- mac os 录屏快捷键_如何才能高效的使用mac笔记本?mac笔记本高效使用教程
热门文章
- 如何为开源项目做市场
- 求求你,千万别为我好!
- 导入超大mysql数据库文件工具_用 BigDump 工具导入超大 MySQL 数据库备份文件
- 【三维路径规划】基于matlab无人机三维路径规划【含Matlab源码 1262期】
- 【树叶识别】基于matlab HU不变矩树叶识别【含Matlab源码 797期】
- 【图像分割】基于matlab免疫遗传算法单阈值图像分割【含Matlab源码 729期】
- python复制csv数据_如何使用Python将CSV数据复制到现有xlsx文件
- android系统结构与应用编程 实验报告_学习编程或编码的最佳Android应用程序
- vue Mutation 必须是同步函数 为什么_Vue知识点——基础篇
- ai人工智能操控什么意思_为什么要建立AI分散式自治组织(AI DAO)