从另一个类访问类方法/变量

本文关键字:变量 类方法 访问 另一个 | 更新日期: 2023-09-27 18:31:52

愚蠢的问题 真的,我有私有变量,我封装了这些变量,现在我想从另一个类访问它们。

我在一个类中也有一个列表,并希望很多类访问该列表(称为字段的对象列表)(创建一个简单的农场模拟器)。那么如何从另一个类访问它们呢?

  1. 我知道我可以创建一个类的instace,但是对于列表,这是否意味着当我在要访问列表的类中创建类的实例时,我的列表将不同?

  2. 我认为我不能使用 Namespace.class.Something,因为它们不是静态的,或者我可以吗?

  3. 也许对列表使用继承,或者这行不通?

请帮忙,非常感谢任何帮助!!*提前谢谢

从另一个类访问类方法/变量

不能从另一个类中访问私有成员(除非该成员是嵌套类的成员)。因此,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; } }