2017-04-11 1 views
-2

J'ai une classe qui a une instance d'une autre classe comme l'une de ses propriétés:Se référant à une propriété d'une classe qui a une instance dans une autre classe

class Phone 
{ 
    private string type; 
    private MemoryCell[] capacity = new MemoryCell[32]; 
    private double price; 
    private int batteryPercentage; 
} 

(toutes les classes ont accesseurs)

Comment puis-je obtenir/définir à partir du Main les valeurs des propriétés du MemoryCell sans écrire des getters et des setters (dans la classe Phone) des getters et des setters de la classe de MemoryCell?

+0

Vous pourriez le faire avec la réflexion mais pourquoi voulez-vous manipuler un champ privé d'une classe est la question importante. –

+0

Avez-vous une propriété publique appelée 'Capacity'? Il semble de votre commentaire, toutes les classes ont des getters et setters. Si tel est le cas, ne pouvez-vous pas simplement appeler 'myInstanceOfPhone.Capacity [index] .PropertyName' où _index_ est une valeur comprise entre 0 et 31? –

+0

Si une réponse a résolu votre problème, veuillez l'accepter. Si vous avez trouvé une solution, écrivez-la ** comme réponse ** et acceptez-la. Merci! :) – Alfabravo

Répondre

-1

Rendez-le privé au public. Comme les membres privés ne peuvent pas être appelés directement. Donc, getter ou setter de la classe MemoryCell ne peut pas être appelée.

+1

Je pense _without l'écriture des getters et setters (dans la classe Phone) _ indique que l'OP ne peut pas modifier la classe. mais c'est juste une supposition ... –

-1

Vous pouvez directement l'obtenir en utilisant l'objet phoneInstance.capacity [index] .propertyName, Si ceux-ci sont publics.