愚蠢的问题,我有私有变量,我封装了,现在我想从另一个类访问它们。
我在一个类中也有一个列表,并且需要很多类来访问该列表(称为字段的对象列表)(创建一个简单的场模拟器)。 那么如何从其他班级访问它们呢?
我知道我可以创建一个类的实例,但是对于列表,这意味着当我在要访问的类中创建类的实例时,我的列表不会相同列表在?
我不认为我可以使用Namespace.class.Something因为它们不是静态的,或者我可以吗?
也许使用继承列表或不起作用?
请帮助,realllyyy会感激任何帮助! *提前谢谢
答案 0 :(得分:0)
您无法从另一个类中访问私有成员(除了该成员是嵌套类的成员)。所以Konrad Kokosa提出的使用Properties的提议绝对没问题,因为它们应该被用来控制来自实际类之外的访问。说完这个之后,您可以将该属性的access-modifier转为public或派生自该类(但是,您必须对该属性使用受保护的访问权限)。
MyClass {
public static List<Field> MyList {get;set;}
}
AnotherClass {
AnotherClass() {
MyClass.MyList = // whatever
// or also possible
MyClass.MyList.Add(/*new Item*/);
}
}
答案 1 :(得分:0)
私人成员不能在课外使用(除非你使用反射,我不推荐)。如果您希望会员可以在外面上课,那么您必须让他们成为公共&#34;。如果您希望您的成员仅对所有派生类可用,请使用&#34; protected&#34;。
答案 2 :(得分:0)
如果要从其他所有类中访问相同的列表,则应将其声明为静态:
private static List<Field> s_fields = new List<Field>();
public static List<Field> Fields { get { return s_fields; } }