第一篇文章太嗨! (請糾正我,如果我使用某個術語錯誤)從創建的實例調用方法
我有一個類在其中創建另一個類名爲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中,如果可以的話 –