如何降低 IL 嵌套深度?
How to lower IL nesting depth?
我现在正在试用 NDepend 两周。我仍然无法真正弄清楚如何降低 ILNestingDepth
。我留下的标记为 "Methods too complex - critical" 的方法很少。作为一种修复方法,他们建议将方法分成更小的方法。但我无法那样解决它。教你一个方法:
第一版: ILNesting Depth of Appropriate = 7
public bool Appropriate ( CompanyQuota available, CompanyQuota used )
{
/// - larger than available or
/// - less than already used area
return !( DiskQuota > available.DiskQuota || DiskQuota < used.DiskUsage ||
UploadQuota > available.UploadQuota || UploadQuota < used.UploadUsage ||
DownloadQuota > available.DownloadQuota || DownloadQuota < used.DownloadUsage ||
PersonnelQuota > available.PersonnelQuota || PersonnelQuota < used.PersonnelUsage );
}
第二版: ILNesting Depth of Appropriate = 7
public bool Appropriate ( CompanyQuota available, CompanyQuota used )
{
/// - larger than available or
/// - less than already used area
return AvailableFromTop(available) || AvailableFromBottom(used);
}
bool AvailableFromTop ( CompanyQuota available )
{
return !( DiskQuota > available.DiskQuota ||
UploadQuota > available.UploadQuota ||
DownloadQuota > available.DownloadQuota ||
PersonnelQuota > available.PersonnelQuota );
}
bool AvailableFromBottom ( CompanyQuota used )
{
return !( DiskQuota < used.DiskUsage ||
UploadQuota < used.UploadUsage ||
DownloadQuota < used.DownloadUsage ||
PersonnelQuota < used.PersonnelUsage );
}
它是如何工作的?
我到底该怎么做?
正如 NDepend 团队的@Patrick 在评论中所说,这是一份误报。因此这个问题不需要回答。
为了社区的利益,我将这个问题保留在这里,答案仅包含 Patrick 的评论,供 "too-lazy-to-read-comments" 人使用。
我现在正在试用 NDepend 两周。我仍然无法真正弄清楚如何降低 ILNestingDepth
。我留下的标记为 "Methods too complex - critical" 的方法很少。作为一种修复方法,他们建议将方法分成更小的方法。但我无法那样解决它。教你一个方法:
第一版: ILNesting Depth of Appropriate = 7
public bool Appropriate ( CompanyQuota available, CompanyQuota used )
{
/// - larger than available or
/// - less than already used area
return !( DiskQuota > available.DiskQuota || DiskQuota < used.DiskUsage ||
UploadQuota > available.UploadQuota || UploadQuota < used.UploadUsage ||
DownloadQuota > available.DownloadQuota || DownloadQuota < used.DownloadUsage ||
PersonnelQuota > available.PersonnelQuota || PersonnelQuota < used.PersonnelUsage );
}
第二版: ILNesting Depth of Appropriate = 7
public bool Appropriate ( CompanyQuota available, CompanyQuota used )
{
/// - larger than available or
/// - less than already used area
return AvailableFromTop(available) || AvailableFromBottom(used);
}
bool AvailableFromTop ( CompanyQuota available )
{
return !( DiskQuota > available.DiskQuota ||
UploadQuota > available.UploadQuota ||
DownloadQuota > available.DownloadQuota ||
PersonnelQuota > available.PersonnelQuota );
}
bool AvailableFromBottom ( CompanyQuota used )
{
return !( DiskQuota < used.DiskUsage ||
UploadQuota < used.UploadUsage ||
DownloadQuota < used.DownloadUsage ||
PersonnelQuota < used.PersonnelUsage );
}
它是如何工作的?
我到底该怎么做?
正如 NDepend 团队的@Patrick 在评论中所说,这是一份误报。因此这个问题不需要回答。
为了社区的利益,我将这个问题保留在这里,答案仅包含 Patrick 的评论,供 "too-lazy-to-read-comments" 人使用。