ReSharper 2025.2 Help

代码检查:可能将值类型与 'null' 进行比较

请考虑以下代码片段:

static void PrintItems<T>(List<T> items) { foreach (var item in items) { if (item != null) { Console.WriteLine(item.ToString()); } } }

虽然一开始可能并不明显,但 T 类型实际上可以是值类型(例如, 结构体 或整数)。 这将导致比较被完全忽略,这可能不是用户的本意。

ReSharper 在这里不建议任何 快速修复 ,因为没有简单的方法检查 T 的所有可能值类型。

解决此问题的一种方法是将 T 参数限制为类类型:

static void PrintItems<T>(List<T> items) where T : class { //... }

然而,在进行此修复后,您需要确保 所有用法PrintItems<T>() 满足泛型约束。

最后修改日期: 2025年 9月 27日