c# मैं== अशक्त जाँच से कैसे बच सकता हूँ?




null (3)

यहाँ मेरा कोड है जो परियोजना में व्यापक रूप से उपयोग किया जाता है, और मैं सोच रहा हूं कि क्या मैं इसे किसी भी तरह से रिफ्लेक्टर कर सकता हूं, इसलिए मैं हर समय == null जांच से बच सकता हूं?

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

धन्यवाद दोस्तों

चियर्स


आप C # 6: नल-सशर्त ऑपरेटर का उपयोग कर सकते हैं

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

अंत में true साथ तुलना "धर्मान्तरित" bool? to bool । केथ द्वारा दिखाए गए अशक्त मान को संभालने के लिए आप अशक्त सहवर्ती संचालक का भी उपयोग कर सकते हैं।


यदि आप अपने आप को एक बहुत कुछ करते हुए पाते हैं, तो आप कोड को सरल बनाने के लिए एक विस्तार विधि लिख सकते हैं।

उदाहरण के लिए, मान लीजिए कि आपके पास ये कक्षाएं हैं:

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