Wpis z mikrobloga

Dzisiaj dzień pytań.
Czy jest jakaś możliwość w #csharp , żeby klasa była dostępna tylko i wyłącznie z jednej klasy.

Coś w tym stylu: Klasa1.Klasa2.Name?

Klasa2 to property Klasy1. Myślałem, żeby stworzyć Klasa2 w ciele Klasa1, ale chciałbym rozdzielić to na kilka plików, żeby to nie był jakiś tasiemiec (myślałem, żeby w tym przypadku wykorzystać keyword partial).

#dotnet #naukaprogramowania
  • 26
  • Odpowiedz
@Goglez: Mam klasę, która moim zdaniem jest źle zaprojektowana przeze mnie i jest zwyczajnie zbyt duża. Chciałbym ją podzielić na kilka innych klas, które byłyby odpowiedzialne za jeden rodzaj call'i do API(Device- dotyczące urządzenia, Message -> wiadomości etc.), ale nie chciałbym, żeby użytkownik miał możliwość stworzyć obiekt takiej klasy, ale żeby robił coś w stylu: SmsGateway.Device.GetDevices();

Jeśli masz chwilę, to z chęcią podesłałbym Ci konto na gh, ale wolałbym na PW
  • Odpowiedz
@GaHee: Zrób dwie klasy
class A, class B;
w klasie A zrób pole klasy B

I będizesz mógł się odwołać tak: obiektA.poleB.poleklasyB, obiektA.poleB.metodaklasyB();

Przy czym, by tak się odowływać pole B musi być publiczne, bądź musisz użyć właściwości (get, set)
  • Odpowiedz
@GaHee: Jeżeli chcesz, żeby programista korzystający z Twojej biblioteki nie miał do klsay bezpośredniego dostępu, to zrób konstruktor internal
  • Odpowiedz