Menu
CoddyTech

Các mẫu kiểm tra null

Thuộc phần Logic và luồng chương trình trong hành trình C# của Coddy. Bài học 33 trên 66.

Kiểm tra null là phần thiết yếu khi viết code C# vững chắc. Bạn có thể dùng một số mẫu để kiểm tra an toàn các giá trị null.

Hãy cùng tìm hiểu một số mẫu kiểm tra giá trị null thường gặp:

Trước tiên, kiểm tra cơ bản xem giá trị có phải là null không:

string name = null;

if (name == null)
{
    Console.WriteLine("Name is null");
}

Một mẫu phổ biến khác là toán tử điều kiện null (?.), giúp truy cập an toàn vào các thành viên của đối tượng có thể là null:

string name = null;
int? length = name?.Length;  // length sẽ là null

Toán tử hợp nhất null (??) cung cấp giá trị mặc định khi một biểu thức là null:

string name = null;
string displayName = name ?? "Unknown";  // displayName sẽ là "Unknown"

Bạn cũng có thể kết hợp các mẫu này để xử lý những tình huống phức tạp hơn:

string name = null;
int length = (name ?? "").Length;  // length sẽ là 0

Phương thức string.IsNullOrWhiteSpace() giúp bạn kiểm tra chuỗi có giá trị null, rỗng hoặc chỉ chứa ký tự khoảng trắng, tất cả chỉ trong một lần gọi:

string name = null;

if (string.IsNullOrWhiteSpace(name))
{
    Console.WriteLine("Name is null, empty, or whitespace");
}

Điều này đặc biệt hữu ích khi bạn cần xem null, chuỗi rỗng và chuỗi chỉ chứa khoảng trắng là như nhau. Ví dụ:

string name1 = null;
string name2 = "";
string name3 = "   ";

// Cả ba đều sẽ in ra thông báo
if (string.IsNullOrWhiteSpace(name1)) Console.WriteLine("name1 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name2)) Console.WriteLine("name2 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name3)) Console.WriteLine("name3 is null/empty/whitespace");

Lưu ý rằng string.IsNullOrWhiteSpace() khác với việc chỉ kiểm tra null. Hàm này cũng phát hiện các chuỗi rỗng và các chuỗi chỉ chứa dấu cách, tab hoặc ký tự khoảng trắng khác.

challenge icon

Thử thách

Dễ

Tạo một phương thức có tên processUserName nhận tham số chuỗi userName. Phương thức cần:

  1. Nếu userName là null, trả về "No user provided"
  2. Nếu userName rỗng hoặc chỉ chứa khoảng trắng, trả về "Invalid username"
  3. Nếu không, trả về "Welcome, [userName]!" trong đó [userName] là tên người dùng thực tế

Nhớ dùng cách kiểm tra null phù hợp.

Tự làm thử

using System;

class ProcessUserName
{
    public static string processUserName(string userName)
    {
        // Viết code của bạn ở đây
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch C# online