根据MSDN:
代码块是具有单个入口点,单个出口点和一组全部按顺序运行的指令的代码路径。代码块在到达决策点时结束,例如新的条件语句块,函数调用,异常抛出,enter,leave,try,catch或finally构造。
考虑到这一点,我仍然不知道为什么,根据VS2010的代码覆盖率分析,这种方法有三个块:
public Type Foo()
{
return typeof(string);
}
这个方法有两个块:
public void FooTwo()
{
return;
}
代码行更直接。它们是包含大括号的代码行数。但什么是代码块?
卡尔文
答案 0 :(得分:0)
代码块表示通用中间语言/ Microsoft中间语言级别的连续路径。遗憾的是,上面的MSDN文章没有提到这一点。
微软大师们在这里给出了很好的解释:
http://www.testingmentor.com/imtesty/2009/11/18/basic-blocks-arent-so-basic/
http://blogs.msdn.com/b/scarroll/archive/2005/01/14/353427.aspx?wa=wsignin1.0
简而言之,精心计算CIL代码块是没有意义的。它们与我们编写的代码位于不同的平面上,它们甚至可以根据您的编译是Debug还是Release来改变。