从接口访问另一个类中的对象?

时间:2015-02-06 15:49:19

标签: c# oop

这甚至可能吗?以下是我目前正在使用的代码的重要部分:

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对象,技术上是分开的(它基本上是拼字游戏瓷砖包和拼字游戏机架。我需要机架能够参考或访问其中的瓷砖包,但我不希望每个货架都有自己的包。)

1 个答案:

答案 0 :(得分:2)

将Bag对象作为参数传递给Rack对象中的方法。

如果您不想,您不必在成员变量中保留对它的引用。但是如果你想要持久访问它,你需要一个私有成员。如果没有私人会员参考,您只能在方法的生命周期内访问它。

public class Rack : IRack
{
   public void SwapAllTiles(IBag bag) { ...Now you can access it... }
}