C # - Nullables

C # cung cấp một kiểu dữ liệu đặc biệt, nullable loại, mà bạn có thể chỉ định phạm vi giá trị bình thường cũng như giá trị null.

Ví dụ: bạn có thể lưu trữ bất kỳ giá trị nào từ -2,147,483,648 đến 2,147,483,647 hoặc null trong biến Nullable <Int32>. Tương tự, bạn có thể gán true, false hoặc null trong biến Nullable <bool>. Cú pháp khai báonullable loại như sau -

< data_type> ? <variable_name> = null;

Ví dụ sau minh họa việc sử dụng kiểu dữ liệu 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();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

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

Nhà điều hành Null Coalescing (??)

Toán tử kết hợp null được sử dụng với các kiểu giá trị và kiểu tham chiếu có thể null. Nó được sử dụng để chuyển đổi một toán hạng sang kiểu của một toán hạng kiểu giá trị có thể null (hoặc không) khác, nơi có thể chuyển đổi ngầm định.

Nếu giá trị của toán hạng đầu tiên là null, thì toán tử trả về giá trị của toán hạng thứ hai, ngược lại nó trả về giá trị của toán hạng đầu tiên. Ví dụ sau giải thích điều này -

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

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Value of num3: 5.34
Value of num3: 3.14157