Classes
A class defines the data members and function members for object instances that are created from that class.
Constructors
A constructor is a class method that is executed when the class is created.
Delegates and Events
Delegates are the object-oriented equivalent of the procedure pointer, offering a type-safe solution. Used in conjunction with the EVENT keyword, they are generally used as a mechanism for one software component to notify another about an event which has occurred, for example a key being pressed in a GUI environment.
Enums
An enumeration represents a list of constant values, such as values for the days of the week. You can declare an enum type that defines the values and symbolic names for them. You can then refer to the values by name.
Fields
A class, valuetype and interface can define a set of static or instance fields.
Indexers
Indexers resemble properties except that their accessors take parameters. Indexers allow instances of a class or valuetype to be indexed just like arrays.
Interfaces
An interface is a list of instance methods specifying names and signatures but without implementation.
Iterators
An iterator is a section of code that returns an ordered sequence of values. You can create an iterator by defining a member as an iterator, using iterator-id.
Methods
A method defines a block of code to be executed when the method is invoked.
Operators
A set of default operators are predefined and implemented. You can overload an operator and define your own behavior for it.
Procedure Division
The procedure division defines the code to be executed when a type or member is invoked. The procedure division header defines any parameters to pass in to the code and any returning item to pass back.
Procedure Division Header
The procedure division header defines the parameters passed to a member and also any returning item, the value computed by the member.
Properties Properties are members with associated types. They are similar to fields but they have accessors that provide the means to read and write values.
Type Members
A class, valuetype or interface can define a set of members, such as methods and properties.
ValueTypes
Value types can contain data members and function members, similar to classes. The difference is that value types store the data as values and don't require heap allocation.