動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

ハマりポイント整理— default(T) vs nullの使い分け

出典: C# Generic 制約 (where T : …) — 業務SE が型安全コードを書く5パターンハマりポイント整理— default(T) vs nullの使い分け

ハマりポイント整理— default(T) vs nullの使い分け (csharp)#06eaa23742b4
public class GenericContainer<T>
{
    private T _value;
 
    // ❌制約なしでnull比較するとCS0019など
    // public bool IsEmpty()=> _value == null;  // Tが値型だと比較できない
 
    // ✅ default(T)を使えば制約不要
    public bool IsEmpty()=> EqualityComparer<T>.Default.Equals(_value, default(T));
 
    // ✅ where T : classならnull比較でOK
}
 
public class RefContainer<T> where T : class
{
    private T _value;
    public bool IsEmpty()=> _value == null;  // class制約でnull比較可能
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #06eaa23742b4
  • lines: 18
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「ハマりポイント整理— default(T) vs nullの使い分け」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

9
図鑑トップ