Immagina di avere una classe definita come segue.Riferimenti C#; Tenere nascosti i membri
public class SomeClass
{
public Manager m { get; protected set; }
public SpecialData data { get; protected set; }
//More methods and member code here...
}
Ho bisogno che la mia classe manager sia in grado di modificare il riferimento impostato per il membro SpecialData. Potrei farlo con un doppio puntatore o classi di amici in C++, ma quell'opzione non è disponibile in C#, purtroppo. Come mantenere protetto SpecialData da utenti esterni che lo impostano, consentendo comunque il controllo della classe Manager su impostazione? Potrei farlo con la parola chiave interna, ma ciò non sembra incredibilmente sicuro o pulito ...
Qualsiasi aiuto è molto apprezzato.
Potresti spiegare perché ritieni che 'internal' non sia sicuro o non sia pulito? Vuoi dire che è così in generale, o stai suggerendo che non è adatto al tuo design specifico? Direi che è una soluzione perfetta qui, anche se la verità è che non sono sicuro del perché tu voglia fare questo in primo luogo. – decPL