سه شنبه ۱۸ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش سی شارپ - نال‌پذیرها

C# - Nullables (نال‌پذیرها)

سی شارپ نوع داده‌ای ویژه‌ای تحت عنوان، نال‌پذیرها، ارائه می‌دهد که به آن‌ها می‌توانید مجموعه‌ای از مقادیر معمولی و همچنین مقادیر null اختصاص دهید.

به عنوان مثال، شما می‌توانید هر مقداری از -2،147،483،648 تا 2،147،483،647 یا مقدار null را در یک متغیر Nullable<Int32> ذخیره کنید. به طور مشابه، شما می‌توانید مقدار true، false، یا null را در یک متغیر Nullable<bool> اختصاص دهید. دستورالعمل برای اعلام یک نوع نال‌پذیر به شکل زیر است:

 


< data_type> ? <variable_name> = null;

مثال زیر نحوه استفاده از نوع داده‌های نال‌پذیر را نشان می‌دهد −


using System;

namespace CalculatorApplication {
   class NullablesAtShow {
      static void Main(string[] args) {
         int? num1 = null;
         int? num2 = 45;
         
         double? num3 = new double?();
         double? num4 = 3.14157;
         
         bool? boolval = new bool?();

         // display the values
         Console.WriteLine("Nullables at Show: {0}, {1}, {2}, {3}", num1, num2, num3, num4);
         Console.WriteLine("A Nullable boolean value: {0}", boolval);
         Console.ReadLine();
      }
   }
}

هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند -


Nullables at Show: , 45,  , 3.14157
A Nullable boolean value:

اپراتور هم‌پوشانی نال (Null Coalescing) (??)

اپراتور هم‌پوشانی نال با انواع داده‌های مقادیر نال‌پذیر و اشاره‌گرها استفاده می‌شود. از آن برای تبدیل یک عمل‌گر به نوع یک عمل‌گر دیگری مقدار نال‌پذیر (یا نه) استفاده می‌شود، جایی که یک تبدیل ضمنی امکان‌پذیر است.

اگر مقدار عمل‌گر اول نال باشد، آنگاه اپراتور مقدار عمل‌گر دوم را برمی‌گرداند، در غیر این صورت مقدار عمل‌گر اول را برمی‌گرداند. مثال زیر این را توضیح می‌دهد −


using System;

namespace CalculatorApplication {
   class NullablesAtShow {
      static void Main(string[] args) {
         double? num1 = null;
         double? num2 = 3.14157;
         double num3;
         
         num3 = num1 ?? 5.34;      
         Console.WriteLine(" Value of num3: {0}", num3);
         
         num3 = num2 ?? 5.34;
         Console.WriteLine(" Value of num3: {0}", num3);
         Console.ReadLine();
      }
   }
}

هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند -


Value of num3: 5.34
Value of num3: 3.14157