Как получить доступ к переменной из одного сценария формы в другой сценарий формы в C #? - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь сделать пошаговую RPG-игру для Visual Studio, используя Windows Forms и язык C #, в качестве альтернативы для изучения.Но независимо от того, сколько я ищу (я думаю, что я искал почти весь Интернет), кажется, что никто на этой планете не задавал этот вопрос только один раз прежде ... Вопрос: у меня есть две формы, сценарий c # наво-первых, это место, где я хранил каждую базовую информацию о игроке (здоровье, сила и т. д.), а затем у меня есть вторая форма, то есть форма, где я помещаю на экран метки, содержащие информацию об игроке, которую яхранится в первом скрипте формы.Но, похоже, я просто не могу этого сделать, потому что нет никакой информации о том, чтобы показать в другой форме какие-либо общедоступные статические переменные типа int или string, объявленные в первой форме.

Мне нужно использовать какой-либо тип ссылки?Или я должен создать «основной файл сценария» для хранения этих значений?

Если кто-нибудь может объяснить мне, как мне взять информацию об этих переменных, которые до сих пор я не использовал, и поместить ее на ярлыкиустановлен в другой форме, буду вечно благодарен.Спасибо, что прочитали так много текста, и я надеюсь, что мой английский не так уж плох (не мой родной язык).

1 Ответ

0 голосов
/ 17 мая 2018

Перед тем, как перейти в Stack Overflow, чтобы спросить, вам действительно нужно пройти базовое руководство или прочитать книгу.

Обычно вы создаете класс , в котором хранится информация об игроке.

internal class PlayerInfo
{
    public string Name { get; set; }

    public int Health { get; set; }
}

Затем ваши формы содержат закрытую переменную типа PlayerInfo, например:

private PlayerInfo playerInfo;

И создайте ее экземпляр для всей вашей программы

this.playerInfo = new PlayerInfo
{
    Name = "Player1",
    Health = 100
}

Я предполагаю, что вы захотите создать этот экземпляр в своей первой форме и передать его во вторую форму.При создании вашей второй формы вам необходимо иметь конструктор , который принимает PlayerInfo в качестве параметра.

public Form2(PlayerInfo playerInfo)
{
    this.playerInfo = playerInfo;
    ...
}

В обеих формах вы можете получить доступ к информации об игроке, используя this.playerInfo.Health или this.playerInfo.Name и т. д.

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