我正试图找出如何将一些私人成员分组。 例如:
public class Phone
{
private string model;
private string manufacturer;
...
}
在这种情况下,我可以通过get方法调用这些成员。 我真正想要的是将它们归为“财产”;组。 它应该像
Phone phone = new Phone();
string model = phone.Properties.model;
答案 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;
关于问题的标题,您提到private
,您可以将其设为私有(通过制作PropertiesModel
类型和Properties
属性private
),但那么你的例子只能在班级内部工作。
PropertiesModel
类(model, manufacturer
)的成员仍然必须是public
,但是类本身(以及访问它们的属性)可以是private
:
Check it - 由于我试图访问phone.Properties.model
,这会产生编译错误,但它是私有的
嵌套类也可以拥有private
个成员,但即使是来自"父母也无法访问这些成员" class(仅在嵌套类本身内)