??
如果不赋予初值,C#的变量是不允许直接使
文章图片
用的。
但有的时候,让值的类型为空是非常有用的,
比如三态bool,其中一个状态便是未给定值。
泛型使用System.NullAble
System.NullAble
因为太常用,C#特意给了一个语法快捷
int? nullAbleInt;
简单的例子:
int? nVal1 = new int?();
int? nVal2 = null;
int? nVal3 = 3;
Console.WriteLine(nVal1);
// 输出null
Console.WriteLine(nVal2);
// 输出null
Console.WriteLine(nVal3);
// 输出3
原则:null与任何数数学运算结果为null,null bool 操作任何值结果为 null。
为了减少可空类型的代码量,遇到null的时候
C#提供了?? 操作符来获取如果为空的默认值。
static void Main(string[] args)
{
int? nVal1 = null;
int? nVal2 = 5;
// nVal1为空,相乘后还是null,输出0作为默认值
Console.WriteLine(2 * nVal1 ?? 0);
// nVal2非空,取计算值输出,输出10
Console.WriteLine(2 * nVal2 ?? 0);
}
推荐阅读
- 笔记|如何在Windows11安装安卓子系统()
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- 2021年下半年《信息系统项目管理师》真题
- 个人理解|【C语言基础之类型转换】
- 学习分享|【C语言函数基础】
- 个人理解|【C语言实现井字棋及电脑落子优化】
- Python|蓝桥杯 平面切割 Python
- Python|Python 每日一练 二分查找 搜索旋转排序数组 详解
- 笔记|这是一个关于face_recognition和dlib库的安装(亲测有用,毕竟我代码都写出来了)
- 信令模式与非信令模式