Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C-sharp language specification.2004.pdf
Скачиваний:
12
Добавлен:
23.08.2013
Размер:
2.55 Mб
Скачать

C# LANGUAGE SPECIFICATION

1public class B: A

2{

3

static void F(A a, B b) {

4

a.x = 1;

// Error, must access through instance of B

5

b.x = 1;

// Ok

6}

7}

8within A, it is possible to access x through instances of both A and B, since in either case the access takes

9place through an instance of A or a class derived from A. However, within B, it is not possible to access x

10through an instance of A, since A does not derive from B. end example]

11In the context of generics (§26.1.6), the rules for accessing protected and protected internal

12instance members are augmented by the following:

13Within a generic class G, access to an inherited protected instance member M using a primary-expression

14of the form E.M is permitted if the type of E is a class type constructed from G or a class type derived

15from a class type constructed from G.

1610.5.4 Accessibility constraints

17Several constructs in the C# language require a type to be at least as accessible as a member or another type.

18A type T is said to be at least as accessible as a member or type M if the accessibility domain of T is a

19superset of the accessibility domain of M. In other words, T is at least as accessible as M if T is accessible in

20all contexts in which M is accessible.

21The following accessibility constraints exist:

22The direct base class of a class type shall be at least as accessible as the class type itself.

23The explicit base interfaces of an interface type shall be at least as accessible as the interface type itself.

24The return type and parameter types of a delegate type shall be at least as accessible as the delegate type

25itself.

26The type of a constant shall be at least as accessible as the constant itself.

27The type of a field shall be at least as accessible as the field itself.

28The return type and parameter types of a method shall be at least as accessible as the method itself.

29The type of a property shall be at least as accessible as the property itself.

30The type of an event shall be at least as accessible as the event itself.

31The type and parameter types of an indexer shall be at least as accessible as the indexer itself.

32The return type and parameter types of an operator shall be at least as accessible as the operator itself.

33The parameter types of an instance constructor shall be at least as accessible as the instance constructor

34itself.

35[Example: In the following code

36class A {…}

37public class B: A {…}

38the B class results in a compile-time error because A is not at least as accessible as B. end example]

39[Example: Likewise, in the following code

40class A {…}

41public class B

42{

43

A F() {…}

44

internal A G() {…}

92

Соседние файлы в предмете Электротехника