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

ハマりポイント— BoxingとGetType()誤用

出典: C# Interface の継承判定と暗黙キャストの定石(is / as / 暗黙キャスト 3パターン)ハマりポイント— BoxingとGetType()誤用

ハマりポイント— BoxingとGetType()誤用 (csharp)#41267d4898a1
// ❌罠1:値型InterfaceでBoxing大量発生(性能劣化)
public struct Point : IComparable<Point>
{
    public int X { get; set; }
    public int Y { get; set; }
    public int CompareTo(Point other)=> /* 比較 */;
}
 
IComparable<Point> cmp = new Point { X = 1, Y = 2 };  // ← Boxing発生
// Pointはstruct(値型)なので、Interface型変数に代入した瞬間にヒープへコピー
//ループ内で大量に発生するとGC負荷で性能劣化
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #41267d4898a1
  • lines: 11
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「ハマりポイント— BoxingとGetType()誤用」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

4
図鑑トップ