Wątek przeniesiony 2016-05-08 20:24 z C# i .NET przez somekind.

Public vs internal

0

Witam serdecznie. Czy ktoś mógłby mi wytłumaczyć różnice między internal a public? Powiedzmy że mamy dwie klasy:

class A
{

}
public class B
{

}

Gdzie konkretnie będzie widoczna klasa A, a gdzie B? Przegrzebałem trochę stacka i w większości tematów piszą, że internal nie jest widoczna na zewnątrz "assembly" ale co to konkretnie znaczy?

4

To znaczy, że jeżeli stworzyłbyś bibliotekę dll, potem dodał ją do projektu (references) i chciał skorzystać ze swojej klasy to nie będzie to możliwe. 'Od zewnątrz' klasa internal nie jest widoczna ale wewnątrz pakietu (np. dll'ki ) jest.
Przykład

DLL o nazwie 'biblioteka':

internal class A
{
}

public class B
{
     public B()
    {
          A klasaA = new A();   <-- wszystko ok ponieważ te dwie klasy są w jednej dll.
    }
}

jakiś inny tworzony program

 
  using biblioteka;
class jakasKlasa
{
      public jakasKlasa()
{
    B klasaB = new B(); <-- ok bo jest publiczna w bibliotece
    A klasaA = new A(); <-- błąd ponieważ jest oznaczona jako internal
}
}
0

I wszystko jasne - dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1