
17 Classes
17.2 Class members
17.2.5 Static and instance members
Paragraph 11 Members of a class are either static members or instance members. [Note: Generally speaking, it is useful to think of static members as belonging to classes and instance members as belonging to objects (instances of classes). end note]
Paragraph 21 When a field, method, property, event, operator, or constructor declaration includes a static modifier, it declares a static member. 2 In addition, a constant or type declaration implicitly declares a static member. 3 Static members have the following characteristics:
class Test
{
int x;
static int y;
void F() {
x = 1; // Ok, same as this.x = 1
y = 1; // Ok, same as Test.y = 1
}
static void G() {
x = 1; // Error, cannot access this.x
y = 1; // Ok, same as Test.y = 1
}
static void Main() {
Test t = new Test();
t.x = 1; // Ok
t.y = 1; // Error, cannot access static member through
instance
Test.x = 1; // Error, cannot access instance member through type
Test.y = 1; // Ok
}
}
The F method shows that in an instance function member, a simple-name (§14.5.2) can be used to access both instance members and static members. The G method shows that in a static function member, it is a compile-time error to access an instance member through a simple-name. The Main method shows that in a member-access (§14.5.4), instance members must be accessed through instances, and static members must be accessed through types. end example]
| |
| Jagger Software Ltd | |
| Company # 4070126 | |
| VAT # 762 5213 42 |