相关疑难解决方法(0)

模式匹配等于null vs为null

来自Microsoft的新功能-c-7-0:

public void PrintStars(object o)
{
    if (o is null) return;     // constant pattern "null"
    if (!(o is int i)) return; // type pattern "int i"
    WriteLine(new string('*', i));
}
Run Code Online (Sandbox Code Playgroud)

什么是o == nullo is null?的不同?

c# c#-7.0

7
推荐指数
2
解决办法
1862
查看次数

C# 代码中带有空参数的 ReferenceEquals()

我通常使用 JavaScript,但我的任务是梳理一些编写了几年的 C# 代码来替换它。

我遇到了一个例子,我正试图绕过我的头。根据我的理解ReferenceEquals()是用来比较两个对象以确定它们是否是同一个实例。但在代码中,我看到传入的第二个参数不是对象,而是null

string type = ReferenceEquals(employee.wage_type, null)
                              ? "W2"
                              : employee.wage_type.Replace(".", string.Empty);
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,这在这里做什么?是否有效地说,如果employee.wage_type等于null则分配“W2”。如果没有,获取找到的值.并将其替换为空字符串?这听起来正确吗?

如果是这样,仅仅检查值是否是null直接的而不是使用ReferenceEquals()which 来比较对象不是更简单吗?还是我误解了ReferenceEquals()可以/用于什么?

c#

0
推荐指数
1
解决办法
75
查看次数

标签 统计

c# ×2

c#-7.0 ×1