Ho una classe Server
che comunica con una connessione server per IRC. Contiene un elenco di User
s noti e li crea se necessario.Rendi metodi/proprietà visibili a una classe, nascosti agli altri
Ho due problemi che coinvolgono la classe User
:
- Chiunque può creare un'istanza di un
User
. Voglio solo che la classeServer
sia in grado di farlo. - Se un utente (la cosa
User
descrive) cambia la sua/il suo nome (o altre informazioni, come i canali uniti), la classeServer
può cambiare se stesso. Tuttavia, anche altre classi possono! Voglio impedire ad altre classi di toccare queste informazioni (rendendole di sola lettura per loro).
Come posso risolvere questi due problemi? In C++, può essere risolto utilizzando la parola chiave friend
e rendendo il ctor e setName
(e simili) privati.
Esiste una parola chiave C# che può consentire ad un determinato metodo di essere accessibile da una classe specificata? Questo risolverebbe il mio problema.
Sono andato con entrambi i metodi che hai suggerito. Ho creato un'interfaccia IUser e una classe interna ServerUser. (Ho anche diviso il Server in due classi in modo che altri possano scrivere i loro client IRC personalizzati.) Grazie per la risposta! – strager