Class declarations are used to define new reference types. C# supports single inheritance only, but a class may implement multiple interfaces.
Class members can include constants, fields, methods, properties, indexers, events, operators, constructors, destructors, and nested type declaration.
Each member of a class has a form of accessibility. There are five forms of accessibility:
public
members are available to all code;protected
members are accessible only from derived classes;internal
members are accessible only from within the same assembly;protected
internal
members are accessible only from derived classes within the same assembly;private
members are accessible only from the class itself.