Ho una libreria di classi con 2 classi pubbliche che ereditano da una classe astratta. Nella classe astratta ho un campo protetto che dovrebbe essere accessibile solo alle classi ereditate. Il tipo utilizzato per il campo è quello di una classe interna.Utilizzo di un tipo interno utilizzato come campo protetto
Per esempio io ho:
internal class MyInternalClass
{
...
}
public abstract class MyAbstractClass
{
protected MyInternalClass myField;
}
Adesso ho capito che questo non funzionerà, perché se una delle classi che derivano dalla classe MyAbstract si estende al di fuori del gruppo, l'accesso a myField sarebbe illegale.
La mia domanda è: come posso far funzionare le cose mantenendo MyInternalClass interno (non dovrebbe essere accessibile al di fuori dell'assieme) e consentendo alle classi all'interno dell'assieme di estendere MyAbstractClass con accesso a myField?
La seconda classe ('abstract') deve essere' public'? –
Sì, deve essere. Le 2 classi che lo estendono sono pubbliche. – zaq
possibile duplicato di [Come rendere una proprietà protetta E interna in C#?] (Http: // stackoverflow.it/questions/941104/how-to-make-a-property-protected-and-internal-in-c) – nawfal