[英]How could I avoid == null checking?
这是我的代码,该代码在项目中广泛使用,我想知道我是否可以以某种方式重构它,以便我可以一直避免== null
检查?
ActiveCompany = admin.Company == null ? false : admin.Company.Active
多谢你们
干杯
您可以使用C#6: 空条件运算符
ActiveCompany = admin.Company?.Active == true;
最后与true
的比较“转换”了bool?
bool
。 您还可以使用空合并运算符来处理空值,如Keith所示。
与null条件链接的null合并运算符对于这种情况很有用:-
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();
这不会使代码短很多,但是有些人可能认为它使代码更具可读性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.