盘点C#中感叹号"!"的作用

发布时间 2023-06-30 12:47:13作者: 翔星

在C#编程语言中,感叹号"!"是一个常见的符号,具有多种用途和作用。小编在本文将带大家探讨感叹号在C#中的不同用法,帮助程序员更好地理解和运用这个小而重要的符号。

1、逻辑非:

感叹号用作逻辑非运算符,可以对布尔值进行取反操作。通过在布尔表达式前面添加感叹号,我们可以将一个布尔值从"true"变为"false",或从"false"变为"true"。逻辑非常常用于条件判断和逻辑运算中。

bool isTrue = true;
bool isFalse = !isTrue; // isFalse的值为false
if(!isFalse){
  dosomesting();//这里就是非False 执行,也就条件是true时执行
}

2、关系运算符:

!= 与等号共同组成关系运算符,检查两个操作数的值是否相等。

a!=b

3、非空断言:

在C# 8.0及更高版本中,感叹号可以用于非空断言。当我们声明一个可能为空的引用类型时,在类型后面添加问号("?")表示可为空。而感叹号用于标记不为空的断言,告诉编译器在此处不要进行空引用检查。这在我们确定某个引用不会为空时非常有用。

string? nullableString = null;
string nonNullableString = nullableString!; // 非空断言,告诉编译器不要检查nullableString是否为null

4、 可空类型的解引用:

同上条一样在C# 8.0及更高版本中,感叹号还可以用于可空类型的解引用操作。可空类型是指允许变量存储空值的类型,通过在变量后面添加问号("?")来表示。当我们需要从可空类型中获取实际值时,可以使用感叹号进行解引用操作,以确保获取到的值不为空。

int? nullableInt = 10;
int nonNullableInt = nullableInt!.Value;
 // 解引用操作,获取nullableInt的值,这里必须确保有值才行

结语

本文讲述了在C#中感叹号("!")具有多种作用和用法。通过熟练掌握感叹号的各种用法,程序员可以更好地利用C#语言的特性,编写出更清晰、更健的C#代码。希望本文对你有所收获,你对C#中感叹号("!")有什么看法,欢迎留言讨论。

参考:.NET官方文档

来源公众号:DotNet开发跳槽