ناجی شما از NullReferenceException
این مهمترین مفهومیه که در مورد اپراتورهای && (AND) و || (OR) باید بدونید.
قانون اتصال کوتاه میگه:
در یک عبارت &&، اگر قسمت اول false باشه، #C اونقدر هوشمنده که دیگه قسمت دوم رو اصلاً بررسی نمیکنه (چون نتیجه کل عبارت قطعاً false هست).
در یک عبارت ||، اگر قسمت اول true باشه، باز هم قسمت دوم بررسی نمیشه (چون نتیجه کل عبارت قطعاً true هست).
این فقط برای سرعت بیشتر نیست، بلکه یه تکنیک حیاتی برای جلوگیری از خطاست. به این مثال طلایی نگاه کنید:
string myString = null;
// این کد بدون اتصال کوتاه، خطای NullReferenceException میداد
// چون sb.Length روی یک متغیر null اجرا میشد.
if (myString != null && myString.Length > 0)
{
Console.WriteLine("String has content.");
}
else
{
Console.WriteLine("String is null or empty.");
}
اینجا چون myString != null برابر با false هست، #C هیچوقت به myString.Length نگاه هم نمیکنه و برنامه شما از یک خطای حتمی نجات پیدا میکنه!