سی شارپ - نوع Nullables

سی شارپ یک نوع داده ی خاص به نام Nullables را فراهم می کند که به شما اجازه می دهد ، به متغیر ها مقدار Null اختصاص بدهید

برای مثال شما می توانید عددی بین -2,147,483,648 تا 2,147,483,647 و همینطور مقدار null را به یک متغیر از نوع Nullable اختصاص بدهید.. همین طور برای یک متغیر از نوع Nullable میتوانید مقدار true، false و یا Null را تعیین کنید. روش تعریف این نوع داده به شکل زیر است:

< data_type> ? <variable_name> = null;

در مثال زیر نحوه ی استفاده از نوع داده ی nullableنشان داده شده است :

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 ، برای نوع های داده ای nullable value types و reference types استفاده می شود که برای تبدیل یک عملوند به عملوند دیگر، در صورتی که عمل تبدیل یا ادغام امکانپذیر باشد، استفاده می شود.

اگر مقدار اولین عملوند برابر با null باشد ، عملگر مقدار دومین عملوند را بر می گرداند در غیر اینصورت مقدار عملوند اول بر گردانده می شود. این کار در مثال پایین نشان داده شده است؟

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