📜  csharp 测试 null - C# (1)

📅  最后修改于: 2023-12-03 15:00:04.179000             🧑  作者: Mango

C#中的测试null

在C#中,经常需要测试一个变量是否为null,以此来决定程序接下来的操作。这个操作看似简单,但实际上有很多种方式可以实现。下面我们就来介绍几种在C#中测试null的方法。

1. 使用==

在C#中,最简单的测试null的方法就是使用==运算符。这个运算符可以对两个变量进行比较,如果两个变量的值相等,则返回true,否则返回false。

string str1 = null;
string str2 = "hello";
bool isNull1 = str1 == null; //返回true
bool isNull2 = str2 == null; //返回false
2. 使用Object.ReferenceEquals

另一种测试null的方法是使用Object.ReferenceEquals方法。这个方法可以判断两个变量是否引用同一个对象,在使用时需要注意,因为null和空字符串是不同的概念。

string str1 = null;
string str2 = null;
bool isNull1 = Object.ReferenceEquals(str1, null); //返回true
bool isNull2 = Object.ReferenceEquals(str1, ""); //返回false
bool isNull3 = Object.ReferenceEquals(str1, str2); //返回true
3. 使用is运算符

is运算符可以判断一个对象是否为指定类型的实例。因为null没有特定的类型,所以使用is运算符测试时需要先判断一个对象是否为null。

string str1 = null;
if (str1 is null)
{
    Console.WriteLine("str1 is null!");
}
else
{
    Console.WriteLine("str1 is not null!");
}
4. 使用?.运算符

C#6.0引入了一个新的运算符?.,它可以在调用对象的成员或方法时先判断对象是否为null,如果为null则返回null,否则才会调用对象的成员或方法。这个运算符被称为null条件运算符。

string str1 = null;
int? length = str1?.Length;
5. 使用??运算符

??运算符可以在变量为null时给出一个默认值。这个运算符可以使用在赋值语句中,也可以使用在函数调用语句中。

string str1 = null;
string str2 = str1 ?? "default";
Console.WriteLine(str2); //输出"default"

以上就是几种在C#中测试null的方法。这些方法各有特点,可以根据实际情况选择使用。