10.4 Members
Namespaces and types have members. [Note: The members of an entity are
generally available through the
use of a qualified name that starts with a reference to the entity,
followed by a ... token, followed by the
name of the member. end note]
Members of a type are either declared in the type or inherited from the
base class of the type. When a type
inherits from a base class, all members of the base class, except instance
constructors, destructors, and static
constructors become members of the derived type. The declared accessibility
of a base class member does
not control whether the member is inherited.inheritance extends to any
member that isn.t an instance
constructor, static constructor, or destructor. However, an inherited
member may not be accessible in a
derived type, either because of its declared accessibility (§10.5.1) or
because it is hidden by a declaration in
the type itself (§10.7.1.2).
10.4.1 Namespace members
Namespaces and types that have no enclosing namespace are members of the
global namespace. This
corresponds directly to the names declared in the global declaration space.
Namespaces and types declared within a namespace are members of that
namespace. This corresponds
directly to the names declared in the declaration space of the namespace.
Namespaces have no access restrictions. It is not possible to declare
private, protected, or internal
namespaces, and namespace names are always publicly accessible.
10.4.2 Struct members
The members of a struct are the members declared in the struct and the
members inherited from the struct.s
direct base class System.ValueType and the indirect base class object.
The members of a simple type correspond directly to the members of the
struct type aliased by the simple
type:
. The members of sbyte are the members of the System.SByte struct.
. The members of byte are the members of the System.Byte struct.
. The members of short are the members of the System.Int16 struct.
. The members of ushort are the members of the System.UInt16 struct.
. The members of int are the members of the System.Int32 struct.
. The members of uint are the members of the System.UInt32 struct.
. The members of long are the members of the System.Int64 struct.
Chapter 10 Basic concepts
73
. The members of ulong are the members of the System.UInt64 struct.
. The members of char are the members of the System.Char struct.
. The members of float are the members of the System.Single struct.
. The members of double are the members of the System.Double struct.
. The members of decimal are the members of the System.Decimal struct.
. The members of bool are the members of the System.Boolean struct.
10.4.3 Enumeration members
The members of an enumeration are the constants declared in the enumeration
and the members inherited
from the enumeration.s direct base class System.Enum and the indirect base
classes System.ValueType
and object.
10.4.4 Class members
The members of a class are the members declared in the class and the
members inherited from the base class
(except for class object which has no base class). The members inherited
from the base class include the
constants, fields, methods, properties, events, indexers, operators, and
types of the base class, but not the
instance constructors, destructors, and static constructors of the base
class. Base class members are inherited
without regard to their accessibility.
A class declaration may contain declarations of constants, fields, methods,
properties, events, indexers,
operators, instance constructors, destructors, static constructors, and
types.
The members of object and string correspond directly to the members of the
class types they alias:
. The members of object are the members of the System.Object class.
. The members of string are the members of the System.String class.
10.4.5 Interface members
The members of an interface are the members declared in the interface and
in all base interfaces of the
interface. [Note: The members in class object are not, strictly speaking,
members of any interface (§20.2).
However, the members in class object are available via member lookup in any
interface type (§14.3). end
note]
10.4.6 Array members
The members of an array are the members inherited from class System.Array.
10.4.7 Delegate members
The members of a delegate are the members inherited from class
System.Delegate.