Mam biblioteki klas z 2 klas publicznych, które dziedziczą z klasy abstrakcyjna. W klasie abstrakcyjnej mam pole chronione, które powinno być dostępne tylko dla dziedziczonych klas. Typ używany w polu to klasa wewnętrzna.Używanie wewnętrznego typu używanego jako chronione pole
Na przykład mam:
internal class MyInternalClass
{
...
}
public abstract class MyAbstractClass
{
protected MyInternalClass myField;
}
Teraz rozumiem, że to nie będzie działać, ponieważ jeśli jedna z klas związanych z MyAbstract klasie jest przedłużony poza zespołem, dostęp do myField byłoby nielegalne.
Moje pytanie brzmi: w jaki sposób mogę uzyskać rzeczy działające przy zachowaniu wewnętrznej wersji MyInternalClass (nie powinno być dostępne poza zestawem) i pozwalając klasom w zespole na rozszerzenie MyAbstractClass z dostępem do myField?
Czy ta druga klasa ("abstrakcyjna") musi być "publiczna"? –
Tak, to musi być. Dwie klasy, które ją rozszerzają, są publiczne. – zaq
możliwy duplikat [Jak zrobić własność chronioną I wewnętrzną w C#?] (Http: // stackoverflow.com/questions/941104/how-to-make-a-property-protected-and-internal-in-c) – nawfal