Class


 * Held on the Managed Heap
 * Members
 * Static Members are associated with the class as a whole. They are shared across any instances and threads and should be protected using some form of data synchronization (http://www.anticipatingminds.com/Content/Products/devAdvantage/KnowledgePacks/Threading/ThreadingKnowledgePack.aspx )
 * Instance Members (default) are associated with an instance (object) of a class
 * Data Members
 * Fields
 * Constants
 * Events
 * Function Members
 * Methods
 * Modifiers
 * Abstract
 * Have no implementation and MUST be overridden
 * Only exist inside Abstract Classes
 * Virtual
 * MAY have an implementation and MAY be overridden
 * Override
 * Provides an implementation in a derived class of a method defined by a base class as Abstract or Virtual
 * May be overridden itself
 * Sealed
 * Provides an implementation in a derived class of a method defined by a base class as Abstract or Virtual
 * May NOT be overridden itself
 * New
 * Provides an implementation in a derived class of a method defined by a base class as Abstract or Virtual
 * Hides the base implementation
 * Variables
 * Variables declared within a method are called Local Variables and have a scope of only within that method.
 * Properties
 * Constructors
 * Finalizers (deconstructors)
 * Operators
 * Indexers
 * Can contain nested Types (nested classes, enums)
 * Abstract Classes
 * Provide the signature of members. May provide member implementation, but it will only be able to be called from derived classes overriding the member.
 * Cannot be instantiated
 * Sealed Classes
 * The sealed modifier is used to prevent derivation from a class. An error occurs if a sealed class is specified as the base class of another class. A sealed class cannot also be an abstract class.