защищенная и частная декларация в .net - PullRequest
1 голос
/ 04 мая 2011

Существуют ли какие-либо различия / преимущества между защищенной и закрытой декларацией, за исключением того, что она недоступна вне класса.

Ответы [ 5 ]

5 голосов
/ 04 мая 2011

Это модификаторы доступности - в этом их суть.

4 голосов
/ 04 мая 2011

private члены доступны только из класса, protected члены также доступны классам, которые наследуют его.

2 голосов
/ 04 мая 2011

Проверьте этот пример из MSDN:

class A 
{
   protected int x = 123;
}

class B : A 
{
   void F() 
   {
      A a = new A();  
      B b = new B();  
      a.x = 10;   // Error
      b.x = 10;   // OK
   }
}

См., Что a.x выдает ошибку, потому что вы пытаетесь получить доступ к свойству извне класса (вызывая опору внутри A изнутри класса B). Но с b.x все в порядке, потому что вы звоните изнутри B. Имеет смысл?

1 голос
/ 04 мая 2011

struct члены могут быть объявлены только как public, private или internal.

class члены могут быть объявлены как public, protected internal, protected, internal или private.

Модификаторы доступа на MSDN

1 голос
/ 04 мая 2011

Члены с модификатором доступа protected доступны в производных классах.В то время как те, у кого есть private модификатор доступа , доступны только в пределах одного класса.

Читайте о модификаторах доступа .

...