在Visual Studio 2010中,什么构成了代码块?

5
根据MSDN的说法:
代码块是一个具有单个入口点、单个出口点和一组按顺序运行的指令的代码路径。当代码块到达决策点(如新的条件语句块、函数调用、异常抛出、进入、离开、尝试、捕获或finally结构)时,代码块结束。
考虑到这一点,我仍然不明白为什么根据VS2010的代码覆盖分析,该方法有三个代码块。
public Type Foo()
{
     return typeof(string);
}

这个方法有两个块:

public void FooTwo()
{
     return;
}

代码行更加直观。它们是包括花括号在内的代码行数。但是什么是代码块?

卡尔文


1
你能添加一个链接,指向你获取原始引用的来源吗? - JaredPar
@JaredPar,在这里找到了它:http://msdn.microsoft.com/zh-cn/library/cc667391(v=VS.100).aspx - jball
1个回答

0

代码块是指在公共中间语言/微软中间语言级别上的连续路径。遗憾的是,上面的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而有所不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接