-
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
|