c# - operator - كيف يمكنني تجنب== التدقيق فارغة؟




operator asp net (2)

إليكم الكود الذي يُستخدم على نطاق واسع في المشروع ، وأتساءل هل يمكنني إعادة تكوين هذا الأمر بطريقة أو بأخرى حتى أتمكن من تجنب == null الشيكات == null طوال الوقت؟

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

شكرا يا شباب

في صحتك


إذا وجدت نفسك تفعل ذلك كثيرًا ، فبإمكانك كتابة طريقة ملحق لتبسيط التعليمات البرمجية.

على سبيل المثال ، افترض أن لديك هذه الفئات:

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();

هذا لا يجعل الشفرة أقصر بكثير ، لكن قد يعتقد البعض أنها تجعلها أكثر قابلية للقراءة.


عامل الإلتواء null بالسلاسل مع شرطية فارغة مفيد لهذا النوع من الأشياء: -

ActiveCompany =  admin.Company?.Active ?? false






null