コードインスペクション: 値型と「null」の比較の可能性があるかもしれません。null
次のコードを考えてみましょう。
static void PrintItems<T>(List<T> items)
{
foreach (var item in items)
{
if (item != null)
{
Console.WriteLine(item.ToString());
}
}
}
最初は明らかではないかもしれませんが、実際には、 T 型は値型(たとえば、 struct または整数)になる可能性があります。 これにより、比較が完全に無視されることになり、ユーザーが意図したものではない可能性があります。
JetBrains Rider はここで クイックフィックスを提案しません。なぜなら、 T のすべての可能な値の型を簡単に確認する方法がないためです。
これを解決するための 1 つのオプションは、 T パラメーターをクラス型に制約することです。
static void PrintItems<T>(List<T> items) where T : class
{
//...
}
ただし、そのような修正の後は、 PrintItems<T>() の すべての使用が総称制約を満たすことを確認する必要があります。
2026 年 6 月 12 日