从另一个类访问类方法/变量
真的很愚蠢的问题,我有私有变量,我封装,现在我想从另一个类访问它们。从另一个类访问类方法/变量
我也在一个类中有一个列表,并想要很多类来访问该列表(称为字段的对象列表)(创建一个简单的农场模拟器)。 那么如何从另一个班级访问他们呢?
我知道我可以做一个类的instace,但名单,将意味着我的名单将是不一样的,当我创造,我要访问的类的类的实例列表中?
我不认为我可以使用Namespace.class.Something,因为它们不是静态的,或者我可以吗?
也许使用继承列表或是不会工作?
请帮助,realllyyy将不胜感激任何帮助! *预先感谢您
您不能从另一个类中访问私有成员(成员是嵌套类的成员除外)。所以Konrad Kokosa提出的使用Properties的提议非常好,因为它们应该用于控制来自实际课程之外的访问。说到这一点,您可以将该属性的访问修饰符变为public或从该类派生(然而,您必须对该属性使用受保护的访问)。
MyClass {
public static List<Field> MyList {get;set;}
}
AnotherClass {
AnotherClass() {
MyClass.MyList = // whatever
// or also possible
MyClass.MyList.Add(/*new Item*/);
}
}
我知道,我知道我可以像那样访问它们,而且我可能会这样做,但是如果我创建列表类的很多实例,那么列表中的列表将不会在每个实例中不同,还是我错了? – 2014-11-24 10:02:53
public static IList
@KlaudijusMiseckas查看我的更新代码,其中包含一个静态属性 – HimBromBeere 2014-11-24 10:06:52
私人成员不能在课堂外使用(除非你使用反射,我不会推荐)。如果你想让这些成员在课外上课,你必须让他们“公开”。如果您希望您的成员仅对所有派生类可用,请使用“受保护”。
如果您要访问的所有O其他类相同的列表,你应该把它声明为静态:
private static List<Field> s_fields = new List<Field>();
public static List<Field> Fields { get { return s_fields; } }
嗯,谢谢我会尝试的,你认为使用这是好的做法还是坏的,(使用静态) – 2014-11-24 10:08:55
不是一个好的做法,一般 - 但这是一个非常广泛的问题,取决于你的喜好,您现有的框架 – ShayD 2014-11-24 10:11:25
非常感谢 – 2014-11-24 10:33:15
阅读有关[属性](http://msdn.microsoft.com/en-我们/库/ x9fsa0sw.aspx)。 – 2014-11-24 09:54:00
?你是否打算阅读我的问题 – 2014-11-24 09:56:18
我知道这一点,但我也得到了名单,如果我创建了很多实例,它们会不会有所不同,看看你是否读过这个问题,你可能会看到我的问题 – 2014-11-24 09:57:32