Вызов метода из созданного экземпляра - PullRequest
0 голосов
/ 12 октября 2011

Первый пост, так привет!(поправьте меня, если я использую какой-то неправильный термин)

У меня есть класс Screen, в котором я создаю экземпляр другого класса с именем Player (давайте назовем этот экземпляр Player).Теперь в Screen у меня есть метод ResetHUD, который я хотел бы вызвать из Player.

Как бы я это сделал?Единственный код внутри ResetHUD - это 1 строка, которая устанавливает переменную в другую переменную.Насколько я знаю, я могу использовать EventHandler (но так как ResetHUD не нуждается ни в каких аргументах, я думаю, что я использую это неправильно) или делегатов (которых я не знаю, как использовать).Помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 12 октября 2011

Поместите свойство MyScreen в класс Player.Когда вы создаете класс Player, присвойте этому свойству класс экрана.Теперь у вас есть ссылка на экран, который вы можете вызвать изнутри игрока.

0 голосов
/ 12 октября 2011

Ну, что-то в Player должно иметь ссылку на экземпляр Screen.Опции:

  • Когда вы создаете Player, передайте this в конструктор, чтобы он мог запомнить Screen, которому он принадлежит
  • Создать событие на Player и подпишитесь на него с Screen
  • Передайте Screen вместе с параметрами в задействованной цепочке вызовов метода (в вашей ситуации это может быть непрактично)
0 голосов
/ 12 октября 2011

Звучит так, как будто у вас есть отношение сдерживания ... Объект Screen содержит один (или более?) Объект Player.

Когда Screen создает Player, он может установить свойство Player, указывая родителя (создание) Экранный объект.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...