类私有成员在组中设置

时间:2016-04-27 05:04:29

标签: c# private-members

我正试图找出如何将一些私人成员分组。 例如:

public class Phone
{
  private string model;
  private string manufacturer;
  ...
}

在这种情况下,我可以通过get方法调用这些成员。 我真正想要的是将它们归为“财产”;组。 它应该像

Phone phone = new Phone();
string model = phone.Properties.model;

1 个答案:

答案 0 :(得分:4)

使用嵌套类:

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";
   }
}

然后,从外面看,就像在你的例子中一样:

Phone phone = new Phone();
string model = phone.Properties.model;

Check it

关于问题的标题,您提到private,您可以将其设为私有(通过制作PropertiesModel类型和Properties属性private ),但那么你的例子只能在班级内部工作。

PropertiesModel类(model, manufacturer)的成员仍然必须是public,但是类本身(以及访问它们的属性)可以是private

Check it - 由于我试图访问phone.Properties.model,这会产生编译错误,但它是私有的

嵌套类也可以拥有private个成员,但即使是来自"父母也无法访问这些成员" class(仅在嵌套类本身内)