第一篇文章太嗨! (请纠正我,如果我使用某个术语错误)从创建的实例调用方法
我有一个类在其中创建另一个类名为Player(让我们称之为实例播放器)的实例的屏幕。现在,在屏幕上我有一个名为ResetHUD的方法,我想从Player调用。
我该怎么做? ResetHUD中唯一的代码是1行,它将变量设置为另一个变量。据我所知,我可以使用EventHandler(但因为ResetHUD不需要任何参数,所以我想我使用的是错误的)或委托(我不知道如何使用)。
帮助表示赞赏!
第一篇文章太嗨! (请纠正我,如果我使用某个术语错误)从创建的实例调用方法
我有一个类在其中创建另一个类名为Player(让我们称之为实例播放器)的实例的屏幕。现在,在屏幕上我有一个名为ResetHUD的方法,我想从Player调用。
我该怎么做? ResetHUD中唯一的代码是1行,它将变量设置为另一个变量。据我所知,我可以使用EventHandler(但因为ResetHUD不需要任何参数,所以我想我使用的是错误的)或委托(我不知道如何使用)。
帮助表示赞赏!
这听起来像你有一个遏制关系......屏幕对象包含一个(或更多?)播放器对象。
当屏幕创建播放器时,它可以在播放器上设置一个属性,指出父(创建)屏幕对象。
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
Th e屏幕包含1个或更多玩家,是的。 我想过把它作为一个参数来传递,但它似乎是不好的做法,或者只是不好的做法。我会阅读代表和事件。谢谢! –
将一个自选属性上Player类。当您创建播放器类时,将该属性设置为您的屏幕类。您现在可以参考屏幕,您可以从播放器内部拨打电话。
那么,东西在Player
需要有一个参考Screen
实例。选项:
Player
,通过this
的构造函数,以便它可以记住它属于Screen
上Player
创建事件,并从Screen
Screen
作为涉及的方法调用链的参数(这可能不适用于您的情况)
请将您的代码放在Q中,如果可以的话 –