从已创建的实例调用方法
本文关键字:调用 方法 实例 创建 | 更新日期: 2023-09-27 18:11:04
第一个帖子,大家好!(如果我用错了一些术语,请纠正我)
我有一个类Screen,我在其中创建了另一个名为Player的类的实例(让我们称这个实例为Player)。现在,在Screen中我有一个叫做ResetHUD的方法我想从Player中调用它。
我该怎么做呢?ResetHUD内部唯一的代码是1行,它将一个变量设置为另一个变量。据我所知,我可以使用EventHandler(但由于ResetHUD不需要任何参数,我认为我使用错误)或委托(我不知道如何使用)。
感谢帮助!
听起来你有一个包容关系…Screen对象包含一个(或多个?)玩家对象。
当Screen创建Player时,它可以在Player上设置一个属性,指示父(创建)Screen对象。
class Player
{
private Screen parentScreen;
public Player(Screen parentScreen) { this.parentScreen = parentScreen; }
public MyMethodThatHasToCallScreensMethod()
{
parentScreen.ResetHUD();
}
}
class Screen
{
public Player CreatePlayer()
{
return new Player(this);
}
}
你也可以使用事件(顺便说一下,事件可以有参数,也可以没有参数,这取决于你需要什么)。
这是我最喜欢的关于c#中的事件和委托的教程。从简单开始,并建立在每一步。 http://www.akadia.com/services/dotnet_delegates_and_events.html在Player类上添加一个MyScreen属性。当你创建Player类时,将该属性设置为你的screen类。现在你有一个screen的引用,你可以从播放器内部调用。
嗯, Player
中的需要有对Screen
实例的引用。选择:
- 创建
Player
时,将this
传递给构造器,以便它可以记住属于 的 - 在
Player
上创建一个事件并从Screen
订阅 - 将
Screen
作为参数沿着所涉及的方法调用链传递(这在您的情况下可能不实用)
Screen
。