这甚至可能吗?以下是我目前正在使用的代码的重要部分:
public class Bag : IBag
{
public IRack NewRack() { ...some code here...}
}
public class Rack : IRack
{
public void SwapAllTiles() { ...can I access the Bag object here somehow?... }
}
我的问题是,我是否可以访问Rack类中的当前Bag对象而无需从Bag类派生,就像通过IRack接口一样?我现在使用它的方式是我从Bag派生Rack并且我可以使用getter来访问当前bag的实例,但这看起来不是好形式。使用静态实例会更好吗?
注意:我不想在我的Rack类中放置一个私人Bag对象,技术上是分开的(它基本上是拼字游戏瓷砖包和拼字游戏机架。我需要机架能够参考或访问其中的瓷砖包,但我不希望每个货架都有自己的包。)
答案 0 :(得分:2)
将Bag对象作为参数传递给Rack对象中的方法。
如果您不想,您不必在成员变量中保留对它的引用。但是如果你想要持久访问它,你需要一个私有成员。如果没有私人会员参考,您只能在方法的生命周期内访问它。
public class Rack : IRack
{
public void SwapAllTiles(IBag bag) { ...Now you can access it... }
}