Derek, I am glad that you have noticed the arrogance - it was intentional - take my apologies. I just wanted to show you that it is not good to show such attitude when talking with other people. I got somehow angry to one how says Java is the worst code ever. Think about this - why in your opinion SAP have chosen Java? And do you know that Java world is larger than the .NET one and that there are more billions in the Java market? As I mentioned in an earlier post I code in .NET also but nevertheless Java has its own advantages - it is actually PLATFORM INDEPENDENT, does not have Interop calls in the class library, only in its runtime, etc. I think you miss some of my statements - TILL WPF (things are different there) every Windows Forms Control is a Win32 Handle wrapper, with lots of Interop underneath. OK, about the Value and Reference types - these are the two basic types in .NET. Value types are special objects, which reside on the Stack and are accessed by copying their values (of course you may always pass a value type by ref). Reference (or instance) types on the other hand are objects, which reside on the managed heap, reserved by the CLR, and are accessed by reference. These objects are target of the Garbage Collector. There are other differences which are not in this scope. So, they have NOTHING to do with ICloneable, value types are not ICloneable implementors. This interface is used when an exact copy of a Reference type is required and it is each type's task to implement the "Clone". Thank you for taking the time to talk with me :)
Thanks, Georgi