Originally Posted by John Kaul (Se7en), from some other forum
I will say though, just to be persnickety (apples-to-apples and all that), both samples I used in the earlier comparison here provide layer create/overwrite, and undo... Where the former is per OP request, and the latter is a byproduct of the Command methodology... I included *UndoMarks in the VL code for completeness (which obviously adds overhead).
You're going to make me learn lisp again aren't you? That feature was a request so I added it.
You could always become an AUGI Professional Member, which comes with a FREE Autodesk Developer Network (ADN) membership, and then install it yourself at work, or home, in as many VMs as you want really (for testing purposes only, not for production).
The book is good, and I can pick up on the syntax okay enough but some of the quirks I can see how and why it's happening and it bugs me. For example, I just got done with a chapter on "interfaces" -i.e. the impacts of implicit boxing when casting structs to a interface reference. ...I can see how and why stuff is happening and it bugs me because I am used how I like to use inheritance.
Haha. static, virtual, protected, by ref and by val, and the like are fun. ...C# doesn't have pointers does it?
Reference and Value Types
C# distinguishes between value types and reference types. Simple types (int, long, double, and so on) and structs are value types, while all classes are reference types, as are Objects. Value types hold their value on the stack, like variables in C++, unless they are embedded within a reference type. Reference type variables sit on the stack, but they hold the address of an object on the heap, much like pointers in C++. Value types are passed to methods by value (a copy is made), while reference types are effectively passed by reference.