Context-sensitive keywords
If you've used Managed Extensions, you're familiar with the CLR types that __gc and __value exposed.
These have now been replaced with the context-sensitive keywords ref and value.
Context-sensitive keywords? That's right. We've made
huge efforts (especially with respect to IJW work)
to ensure that we don't break our users' code in our haste to add new features.
That's why most of the CLR features exposed by Whidbey will only be keywords in
the right context. So, if you've already got an identifier named value - and
who doesn't - don't worry. Compiling with /clr isn't going to break that.
You can still create classes just like you always have. With the added CLR types,
most of us refer to conventional C++ classes as "native types." We expose the
new CLR types as extensions of regular classes. Where you might have class
A{}; before, you now have ref class A{}; .
Now you're dealing with a CLR type, and all the benefits that provides, all without
breaking exisiting code.
This is really at the heart of what sets this new implementation apart from Managed
Extensions. It has an integrated feel into the original language, without breaking
existing code, and __without __all __those __ugly __double __underscores. The
code looks and feels natural.