【发布时间】:2013-08-03 06:36:03
【问题描述】:
在 NDepend 4 (v4.1.0.6871) 中,我使用默认的设计查询“应避免装箱/拆箱”:
warnif percentage > 5 from m in Application.Methods where
m.IsUsingBoxing ||
m.IsUsingUnboxing
select new { m, m.NbLinesOfCode, m.IsUsingBoxing, m.IsUsingUnboxing }
报告以下方法(灵感来自 Jon Skeet 的 MiscUtil 并被盗)为使用拳击:
public static void ThrowIfNull<T>(this T target, string name) where T : class
{
if (target == null)
{
throw new ArgumentNullException(name ?? string.Empty);
}
}
我不明白这种方法怎么可能使用拳击。我没有在任何地方使用演员表。
我尝试了以下版本,以防空合并运算符在幕后以某种方式使用装箱:
public static void ThrowIfNull<T>(this T target, string name) where T : class
{
if (target == null)
{
throw new ArgumentNullException(name);
}
}
...但我也没有运气,NDepend 仍然报告该方法正在使用装箱。
有什么想法吗?
【问题讨论】:
标签: c#-4.0 generics boxing ndepend