Niit - Ict Hà Nội » Tin tức » Tin tức công nghệ » Hướng dẫn sử dụng NullableType trong C#
Hướng dẫn sử dụng NullableType trong C#

Như ta đã biết, trong C# có 2 loại kiểu dữ liệu, đó là các kiểu dữ liệu ValueType và ReferenceType. Các kiểu dữ liệu ValueType như int, float, char không cho phép gán giá trị null. Nếu ta gán giá trị null cho các biến thuộc kiểu ValueType thì sẽ bị lỗi compile.

C# từ bản 2.0 cung cấp các kiểu nullable type, để cho phép ta gán những giá trị null cho các biến thuộc kiểu value type. Ta có thể khai báo các kiểu nullable type bằng cách sử dụng cú pháp: 

Nullable<T>, trong đó T là một kiểu dữ liệu.

NullableType: Là những kiểu dữ liệu đặc biệt, cho phép gán giá trị null cho các kiểu dữ liệu ValueType.

Nếu ta gán giá trị null cho các biến thuộc kiểu dữ liệu ValueType thì chương trình sẽ báo lỗi như sau:

Để thực hiện khai báo NullableType, ta thêm dấu ? vào sau kiểu dữ liệu.

NullableType có 2 properties như sau:

HasValue: Kiểm tra xem biến thuộc NullableType có chứa giá trị hay không. Nếu biến có chứa giá trị thì thuộc tính này sẽ trả về true, ngược lại sẽ trả về false. Value: Trả về giá trị mà biến đang chứa.

Ví dụ:

Ở đây ta đã khai báo một biến role thuộc kiểu dữ liệu NullableType, sau đó ta gán null cho biến này. Tiếp theo ta kiểm tra xem biến có giá trị hay không, rồi in ra kết quả.

Ta thấy: vì biến có giá trị null, nên chương trình đã in ra đúng kết quả như trên.

Sau đó, ta thử khai báo giá trị cho biến role nói trên, rồi in ra giá trị của biến như đoạn code bên dưới.

Ta thực thi chương trình và sẽ thấy giá trị của biến được hiển thị ra màn hình như bên dưới.

Ngoài ra, NullableType còn cho phép khai báo giá trị mặc định cho biến, để tránh trường hợp khi người dùng quên, gán một giá trị null của biến thuộc kiểu NullableType cho một biến thuộc kiểu ValueType, sẽ gây ra lỗi cho chương trình.

 

Ví dụ:

Trong ví dụ trên, ta đã khai báo biến actualValue thuộc kiểu NullableType, và gán giá trị null cho biến.

Sau đó ta gán giá trị của biến actualValue cho biến marketValue thuộc kiểu ValueType. Tuy nhiên, ta đã khai báo giá trị mặc định là 1.0, trong trường hợp này, việc gán giá trị null cho biến marketValue sẽ không hợp lệ (vì biến marketValue thuộc kiểu ValueType không chấp nhận giá trị null), nhưng biến marketValue sẽ được tự động gán giá trị là 1.0. Sau đó ta in ra giá trị của hai biến.

Sau khi đã viết mã xong, hãy biên dịch chương trình và xem kết quả. Ta có thể thấy giá trị của các biến được hiển thị như hình bên dưới.

 

Chú ý:

  • NullableType chỉ có thể áp dụng cho các kiểu dữ liệu ValueType.
  • Khi khai báo NullableType, có thể sử dụng dạng cú pháp đầy đủ như sau: