Lập trình C#

Kiểu nullable trong lập trình C#

Kiểu nullable trong lập trình C#
Được viết bởi Minh Hoàng

Series lập trình C#, ngôn ngữ lập trình hiện đại và mạnh mẽ.

Kiểu nullable trong lập trình C#

Trong bài hôm nay, chúng ta sẽ tìm hiểu về kiểu nullable trong lập trình C#, với những nội dung sau:

  1. Kiểu nullable là gì?
  2. Cách khai báo kiểu nullable
  3. Đặc điểm của kiểu nullable
1. Kiểu nullable là gì?

– Trong C# thông thường chỉ những biến có kiểu tham chiếu mới có thể được gán giá trị null. Tuy nhiên, C# cung cấp kiểu nullable để cho phép cả những biến có kiểu giá trị có thể được gán giá trị null.

– Bình thường khi bạn gán giá trị null cho một biến kiểu int, hay double, hay bool,… thì trình biên dịch sẽ báo lỗi: Cannot convert null to ‘int‘ because it is a non-nullable value type, Cannot convert null to ‘double‘ because it is a non-nullable value type,… Nhưng với kiểu nullable bạn hoàn toàn có thể làm được phép gán này.

2. Cách khai báo kiểu nullable

– Cú pháp:

// Thường sử dụng
data_type? variable_name = value;

Hoặc:

// Ít sử dụng
System.Nullable<data_type> variable_name = value;

– Ví dụ:

// Biến num, f ngoài giá trị số, có thể gán giá trị null
int? num = null;
num = 123;

float? f = null;
f = 8.6f;

// Biến isValue có thể lưu được 3 giá trị là: true, false, null
System.Nullable<bool> isValue = null;

3. Đặc điểm của kiểu nullable

– Biến có kiểu nullable có thể chứa giá trị null.
– Biến có kiểu nullable làm việc như một biến thông thường.
– Có thể trả lại giá trị được gán hoặc giá trị mặc định cho biến kiểu nullable.
– Khi đem gán một biến kiểu nullable cho một biến không phải kiểu nullable thì cần phải sử dụng toán tử ?? để thực hiện theo cú pháp như sau:

variable_non_nullable = variable_nullable ?? default_value;

・ Với ý nghĩa:

  • Giá trị của variable_nullable mà khác null thì gán variable_non_nullable = variable_nullable
  • Giá trị của variable_nullable mà bằng null thì gán variable_non_nullable = default_value

– Bạn có thể sử dụng phương thức HasValue để kiểm tra xem biến nullable mà bạn khai báo đã được gán giá trị chưa.

// Khai báo kiểu nullable cho biến kiểu int
int? num = null;

// Kiểm tra xem biến nullable đã được gán giá trị hay chưa.
if (num.HasValue)
{
	// Nếu được gán rồi thì lấy giá trị của nó.
	Console.WriteLine( "num is {0}.", num.Value );
}
else
{
	Console.WriteLine( "num is not set." );
}

num = 123;

if (num.HasValue)
	Console.WriteLine( "num is {0}.", num.Value );
else
	Console.WriteLine( "num is not set." );
Kết quả chương trình

Kết quả chương trình

– Ngoài ra, một trong những ứng dụng của kiểu nullable là để tích hợp C# với cơ sở dữ liệu trong đó các cột của bảng nào đó có thể chứa giá trị null. Nếu không có kiểu nullable thì không có cách nào để thể hiện chính xác những giá trị null trong các cột của bảng đó.

Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!


Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp người đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[...]

Bình luận của bạn

avatar

Kiểu nullable trong lập trình C#

by Minh Hoàng Time to read: 3 min
0