views:

74

answers:

2

As per MSDN:

A code block is a code path with a single entry point, a single exit point, and a set of instructions that are all run in sequence. A code block ends when it reaches a decision point such as a new conditional statement block, a function call, exception throw, enter, leave, try, catch, or a finally construct.

With this in mind, I still have no idea why, according to VS2010's code coverage analysis, this method has three blocks:

public Type Foo()
{
     return typeof(string);
}

And this method has two blocks:

public void FooTwo()
{
     return;
}

Code lines are more straightforward. They're the number of lines of code including curly brackets. But what are code blocks?

Calvin

A: 

No one knows this?

Calvin
This is not an answer to your question. Don't post this here.
Brad
A: 

Code blocks mean contiguous paths at the Common Intermediate Language / Microsoft Intermediate Language level. This is unfortunately not mentioned in the MSDN article above.

Good explanations from Microsoft gurus themselves here:

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

In a nutshell it doesn't make sense to meticulously count CIL code blocks. They're on a different plane than the code we write, and they can even vary depending on whether your compilation is Debug or Release.

Calvin