使用FxCop Introspection进行代码分析的无限循环
我正在尝试编写自定义FxCop代码分析规则
这将警告开发人员包含过于嵌套的代码块的方法,
并敦促他们重新分解这个烂摊子。
恩。我试图避免以下情况:
if(condition)
{
foreach(var item in items)
{
if(anotherCondition)
{
for(var product in item.Products)
{
// even more nested statement blocks...
}
}
}
}
当我覆盖VisitBlock(Block block)
方法时,我得到一个stackoverflow
计算块的深度,因为显然有一个循环引用
从块的一个属性到
块本身。
即对于某些i,以下情况属实:block.Statements [i] == block
为什么存在这样的循环引用?怎么避免呢?
谢谢!
没有找到相关结果
已邀请:
1 个回复
缮淳彼誊
的
属性中的起始行和结束行,并跟踪每个 我们发现'{'和'}'。增加'{'的计数器并递减'}'的计数器。那应该有用,对吗?