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.
attributes
opt field-modifiers
opt type
variable-declarators
;
field-modifier
field-modifiers
field-modifier
variable-declarator
variable-declarators
,
variable-declarator
identifier
identifier
=
variable-initializer
expression
array-initializer
A 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-declarator
s, 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: