Utilisez une classe imbriquée:
public class Phone
{
public class PropertiesModel
{
public string model;
public string manufacturer;
}
public PropertiesModel Properties { get; }
public Phone()
{
Properties = new PropertiesModel();
Properties.model = "foo";
Properties.manufacturer = "bar";
}
}
Puis, de l'extérieur, comme dans votre exemple:
Phone phone = new Phone();
string model = phone.Properties.model;
Check it
Sur le titre de la question, où vous mentionnez private
, vous pouvez les rendre privés à la classe (en faisant votre type PropertiesModel
et votre propriété Properties
private
), mais alors votre exemple ne fonctionnera qu'à partir de la classe elle-même.
Les membres de la classe PropertiesModel
(model, manufacturer
) devront encore être public
, mais la classe elle-même (et la propriété pour y accéder) peuvent être private
:
Check it - ceci donnera une erreur de compilation puisque je essaie d'accéder phone.Properties.model
, mais il est privé
la classe imbriquée peut aussi avoir private
membres, mais ceux qui ne seront pas accesible même de la classe « parent » (uniquement à partir de la classe imbriquée lui-même)
Qu'est-ce que vous essayez exactement d'accomplir et pourquoi pensez-vous que ce que vous avez décrit est la façon de le faire? –
J'essaie de le rendre mieux organisé. Cette classe a beaucoup de fonctionnalités/membres. J'essaie d'y accéder plus facilement. – Dan