从另一个类访问类方法/变量
本文关键字:变量 类方法 访问 另一个 | 更新日期: 2023-09-27 18:31:52
愚蠢的问题 真的,我有私有变量,我封装了这些变量,现在我想从另一个类访问它们。
我在一个类中也有一个列表,并希望很多类访问该列表(称为字段的对象列表)(创建一个简单的农场模拟器)。那么如何从另一个类访问它们呢?
-
我知道我可以创建一个类的instace,但是对于列表,这是否意味着当我在要访问列表的类中创建类的实例时,我的列表将不同?
-
我认为我不能使用 Namespace.class.Something,因为它们不是静态的,或者我可以吗?
-
也许对列表使用继承,或者这行不通?
请帮忙,非常感谢任何帮助!!*提前谢谢
不能从另一个类中访问私有成员(除非该成员是嵌套类的成员)。因此,Konrad Kokosa 建议使用属性是绝对可以的,因为它们应该用于控制来自实际类之外的访问。话虽如此,您可以将该属性的访问修饰符转换为公共或从该类派生(但是,您必须对该属性使用受保护的访问)。
MyClass {
public static List<Field> MyList {get;set;}
}
AnotherClass {
AnotherClass() {
MyClass.MyList = // whatever
// or also possible
MyClass.MyList.Add(/*new Item*/);
}
}
私有成员不能在类之外使用(除非你使用反射,我不建议这样做)。如果您希望成员可供外部课程使用,则必须将其设置为"公开"。如果希望成员仅对所有派生类可用,请使用"受保护"。
如果你想从所有其他类访问同一个列表,你应该把它声明为静态的:
private static List<Field> s_fields = new List<Field>();
public static List<Field> Fields { get { return s_fields; } }