这是我在项目中广泛使用的代码,我想知道是否可以以某种方式进行重构,以避免一直进行 == null
检查?
ActiveCompany = admin.Company == null ? false : admin.Company.Active
谢谢大家
干杯
ActiveCompany = admin.Company?.Active == true;
比较结尾处的true
会将bool?
转换为bool
。您还可以使用空值合并运算符来处理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();
Company
) 会为空吗? - Matthew Watson==
语法)。 - Matthew Watsonadmin.Company?.Active
- Kaushik