How good idea is it to use code contracts in Visual Studio 2010 Professional (ie. no static checking
Posted
by Lasse V. Karlsen
on Stack Overflow
See other posts from Stack Overflow
or by Lasse V. Karlsen
Published on 2010-04-13T18:00:54Z
Indexed on
2010/04/13
18:03 UTC
Read the original article
Hit count: 195
I create class libraries, some which are used by others around the world, and now that I'm starting to use Visual Studio 2010 I'm wondering how good idea it is for me to switch to using code contracts, instead of regular old-style if-statements.
ie. instead of this:
if (String.IsNullOrWhiteSpace(fileName))
throw new ArgumentNullException("fileName");
(yes, I know, if it is whitespace, it isn't strictly null
)
use this:
Contract.Requires(!String.IsNullOrWhiteSpace(fileName));
The reason I'm asking is that I know that the static checker is not available to me, so I'm a bit nervous about some assumptions that I make, that the compiler cannot verify. This might lead to the class library not compiling for someone that downloads it, when they have the static checker. This, coupled with the fact that I cannot even reproduce the problem, would make it tiresome to fix, and I would gather that it doesn't speak volumes to the quality of my class library if it seemingly doesn't even compile out of the box.
So I have a few questions:
- Is the static checker on by default if you have access to it? Or is there a setting I need to switch on in the class library (and since I don't have the static checker, I won't)
- Are my fears unwarranted? Is the above scenario a real problem?
Any advice would be welcome.
© Stack Overflow or respective owner