Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

List null trong C#


Giới thiệu

Một biến List<T> có thể gán giá trị null (không tham chiếu đến đối tượng nào). Khác với list rỗng (empty list), list null sẽ ném NullReferenceException khi truy cập bất kỳ thành viên nào.

Ví dụ cơ bản

List myList = null;
Console.WriteLine(myList == null); // True

Ví dụ hoàn chỉnh

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        List myList = null;
        // Kiểm tra null
        Console.WriteLine(myList == null); // True
    }
}

Kết quả

True

Phân biệt Null vs Empty (tóm tắt)

Null ListEmpty List
Khởi tạoList list = null;List list = new List();
list == nulltruefalse
list.CountNullReferenceException0
An toàn với foreachKhôngCó

Cách xử lý an toàn

// 1. Kiểm tra null trước
if (myList != null)
{
    foreach (var item in myList) { ... }
}

// 2. Toán tử null-conditional (C# 6+)
foreach (var item in myList ?? Enumerable.Empty()) { ... }

// 3. Khởi tạo sớm (khuyên dùng)
List myList = new List(); // Không bao giờ null

Lưu ý

  • Tránh trả về null từ phương thức trả về List - trả về list rỗng thay thế.
  • Dùng [NotNull] attribute (Roslyn analyzer) để cảnh báo tại compile time.
  • null là giá trị hợp lệ của kiểu tham chiếu, nhưng thường là dấu hiệu thiết kế kém (code smell).