Dotnet
感叹号的作用
感叹号 !在c#中主要有三个作用:
- 不等于号,
- 逻辑运算符“非”,
- null 容忍操作符
1、不等于号
var a = 1;
var b = 2;
if(a!=b)
{
// do something
}
2、逻辑运算符“非”
将“真”变成 “假”,或将“假”变成“真”
var a = true;
a = !a;
// a 为 假
3、null 容忍操作符
C#8 的新特性
编译器会提示引用类型在使用前是否赋值,如果未赋值直接使用,则会给出波浪线提示,
如果不想出现波浪线提示,一种做法是写防御代码
if(aa!=null)
{
throw new Exception("不能为空");
}
另一种做法是忽略警告
还有一种做法是null 容忍操作符,如下所示
var date = obj!.date
这样将不会出现波浪线,
但是,这里要特别注意,
编译检查是保证代码健壮性的工具,使用了null容忍操作符,也就是告诉编译器,不用检查它,
所以你必须百分百保证这个是有值的