June 11th, 2009 02:22 AM
#1
Code Contracts
I've read an article "Code Contracts in .NET " by cilu recently, but I'dont understood all, so I'd ask few more question:
1. What is the difference between code contracts and assertions (e.g. Debug.Assert)?
2. Are they enforced by compiler in some way, or work only in run-time?
3. What is the main benefit?
Make it run.
Make it right.
Make it fast.
Don't hesitate to rate my post.
June 11th, 2009 03:28 AM
#2
Re: Code Contracts
No, they are not enforced by the compiler. There are tools that compile the contracts separately and can modify the MSIL code to assert at runtime, if you have the runtime check enabled. If you have these tools it's like you don't even have the contracts in your code.
You can read more about it here: http://research.microsoft.com/en-us/projects/contracts/ .
As for the difference between Debug.Assert, the Contracts.Assert is that the later is recognized by these tools, while the former isn't.
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Click Here to Expand Forum to Full Width
Bookmarks