Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธี Return Null จาก Generic Method ใน C#

Generic Method ไม่สามารถ Return null โดยตรงได้ เพราะ T อาจเป็น Value Type (struct) ที่ไม่รองรับ Null

ปัญหา

public static T Add(T a, T b)
{
    return null; // Compile Error: Cannot convert null to type parameter T
}

แก้ด้วย default(T)

default(T) คืนค่า Default ของ Type T:

  • Reference Type → null
  • Value Type (int, bool, struct) → 0, false, zero-initialized struct
public static T Add(T a, T b)
{
    T defaultVal = default(T);
    Console.WriteLine(defaultVal); // 0 สำหรับ int
    return defaultVal;
}

C# 7.1+ ใช้ default Literal

return default; // Type Inference จาก Return Type