如何避免 == 空检查?

  • 本文关键字:何避免 c# null
  • 更新时间 :
  • 英文 :


这是我在项目中广泛使用的代码,我想知道我是否可以以某种方式重构它,以便我可以一直避免== null检查?

ActiveCompany = admin.Company == null ? false : admin.Company.Active

谢谢大家

干杯

可以使用C# 6: 空条件运算符

ActiveCompany = admin.Company?.Active == true;

最后与true的比较将bool?"转换"为bool.您还可以使用 null 合并运算符来处理 null 值,如 Keith 所示。

用空条件链接的空合并运算符对于这种事情很有用:-

ActiveCompany =  admin.Company?.Active ?? false

如果你发现自己经常这样做,你可以编写一个扩展方法来简化代码。

例如,假设您有以下类:

public sealed class Company
{
public bool Active { get; set; }
}
public sealed class MyClass
{
public Company Company;
}

然后你可以编写一个扩展方法,如下所示:

public static class MyClassExt
{
public static bool IsActiveCompany(this MyClass myClass)
{
return myClass.Company?.Active ?? false;
}
}

这意味着您可以编写如下代码:

var test = new MyClass();
// ...
bool activeCompany = test.IsActiveCompany();

这不会使代码更短,但有些人可能会认为它使代码更具可读性。

相关内容

  • 没有找到相关文章

最新更新