
10 Basic concepts
10.5 Member access
10.5.2 Accessibility domains
Paragraph 11 The accessibility domain of a member consists of the (possibly disjoint) sections of program text in which access to the member is permitted. 2 For purposes of defining the accessibility domain of a member, a member is said to be top-level if it is not declared within a type, and a member is said to be nested if it is declared within another type. 3 Furthermore, the text of an assembly is defined as all source text contained in all source files of that assembly, and the source text of a type is defined as all source text contained between the opening and closing "{" and "}" tokens in the class-body, struct-body, interface-body, or enum-body of the type (including, possibly, types that are nested within the type).
Paragraph 21 The accessibility domain of a predefined type (such as object, int, or double) is unlimited.
Paragraph 31 The accessibility domain of a top-level type T that is declared in a program P is defined as follows: [Note: From these definitions it follows that the accessibility domain of a top-level type is always at least the program text of the program in which that type is declared. end note]
Paragraph 41 The accessibility domain of a nested member M declared in a type T within a program P, is defined as follows (noting that M itself may possibly be a type):
public class A
{
public static int X;
internal static int Y;
private static int Z;
}
internal class B
{
public static int X;
internal static int Y;
private static int Z;
public class C
{
public static int X;
internal static int Y;
private static int Z;
}
private class D
{
public static int X;
internal static int Y;
private static int Z;
}
}
the classes and members have the following accessibility domains:
class A
{
int x;
static void F(B b) {
b.x = 1; // Ok
}
}
class B: A
{
static void F(B b) {
b.x = 1; // Error, x not accessible
}
}
the B class inherits the private member x from the A class. Because the member is private, it is only accessible within the class-body of A. Thus, the access to b.x succeeds in the A.F method, but fails in the B.F method. end example]
| |
| Jagger Software Ltd | |
| Company # 4070126 | |
| VAT # 762 5213 42 |