2015-02-06 60 views
1

这甚至可能吗?这里是我目前正与代码的重要部分:从接口访问另一个类中的对象?

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?... } 
} 

我的问题是,我可以通过IRack接口访问当前包对象在机架类,而不从袋类派生,像不知何故?我现在正在工作的方式是我从Bag中派生出来,并且我可以使用getter来访问当前包的实例,但这看起来不太好。会使用静态实例更好吗?

注意:我不想在我的Rack类中放置一个私人Bag对象,它们在技术上是分开的(它基本上是一个拼字块包和一个拼字游戏机架,我需要机架可以引用或访问但是我不希望每个机架都有自己的包。)

回答

2

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

如果你不想在成员变量中持有引用。但是如果你想持久访问它,你确实需要一个私有成员。如果没有私人成员参考,则只能在方法的整个生命周期中访问它。

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

类名'bag'和'Rack'表示他应该可能用于构造函数/私有成员方法。 – dotNET 2015-02-06 15:55:40