ECMA-334 C# Language Specification17.4: Fields |
A field is a member that represents a variable associated with an object or class. A field-declaration introduces one or more fields of a given type.
attributesopt field-modifiersopt type variable-declarators ; field-modifier field-modifiers field-modifier variable-declarator variable-declarators , variable-declarator identifier identifier = variable-initializer expression array-initializerA field-declaration may include a set of attributes (24), a new modifier (17.2.2), a valid combination of the four access modifiers (17.2.3), and a static modifier (17.4.1). In addition, a field-declaration may include a readonly modifier (17.4.2) or a volatile modifier (17.4.3), but not both The attributes and modifiers apply to all of the members declared by the field-declaration. It is an error for the same modifier to appear multiple times in a field declaration.
The type of a field-declaration specifies the type of the members introduced by the declaration. The type is followed by a list of variable-declarators, each of which introduces a new member. A variable-declarator consists of an identifier that names that member, optionally followed by an "=" token and a variable-initializer (17.4.5) that gives the initial value of that member.
The type of a field must be at least as accessible as the field itself (10.5.4).
The value of a field is obtained in an expression using a simple-name (14.5.2) or a member-access (14.5.4). The value of a non-readonly field is modified using an assignment (14.13). The value of a non-readonly field can be both obtained and modified using postfix increment and decrement operators (14.5.9) and prefix increment and decrement operators (14.6.5).
A field declaration that declares multiple fields is equivalent to multiple declarations of single fields with the same attributes, modifiers, and type.
is equivalent to
class A
{
public static int X = 1, Y, Z = 100;
}
end example]
class A
{
public static int X = 1;
public static int Y;
public static int Z = 100;
}
In This Section: