Помогите пожалуйста разобраться как правильно организовать передачу экземпляров класса (объектов) между вызовами событий формы? К примеру, есть класс Player.
class Player
{
private int _health;
private int _attack;
public int CombatPower { get; private set; }
public int OpenedChests { get; private set; }
public Player(int health, int attack)
{
_health = health;
_attack = attack;
CombatPower = health * 2 + attack * 4;
OpenedChests = 0;
}
public void OpenChest()
{
OpenedChests += 1;
}
}
Допустим где-то будет создан экзмемпляр этого класса player. Сейчас создаю его при загрузке формы
private void Sim_Load(object sender, EventArgs e)
{
Player player = new Player(100, 0);
}
Дальше, допустим, при вызове события button1_Click я хочу выполнить метод player.OpenChest()
private void button1_Click(object sender, EventArgs e)
{
player.OpenChest();
}
Но как это сделать? player был создан при загрузке формы, дальше он уничтожается потому что является локальным. Мне же надо передать как-то между этими событиями созданный ранее экземпляр моего класса Player. Можно было бы конечно создать внутри события button1_Click, но я допустим хочу создать его именно при загрузке, а потом передавать этот объект в другие события формы. Помогите пожалуйста разобраться как правильно это сделать?
А сможем ли мы получить доступ MyField из других классов, методов и др.?. Если не поняли, то ок, говорю в лоб - вынеситеPlayer playerза пределы метода. У вас такое кстати уже есть (OpenedChestsнапример), как мог возникнуть подобный вопрос, если вы уже подобное делали, я не понимаю.... – EvgeniyZ Nov 21 '23 at 15:56