


C# - Ошибкa CS0120 Для нестатического поля, метода или свойства "Form1.player_name1" требуется ссылка на объект.
Ошибка CS0120
Скажите пожалуйста как мне изменить значение в label через функцию в моём классе
Вот полностью код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace game
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
player player1 = new player();
player1.name = "Удар пяткой"; player1.link_profile = "";
player1.strength = 14; player1.age = 18;
player1.info(player1);
}
class player
{
public string name;
public int age, strength;
public float money = 5000;
public string link_profile;
public void buy(string obj, int buymoney)
{
if (money > buymoney && obj == "труханы")
{
money -= 300;
}
}
public void info(player playerobj)
{
player_name1.Text("Имя игрока: {0}", playerobj.name);
}
}
}
}
класс player никак не может видеть переменную player_name1, поэтому и ошибка. То есть нужно передать объект класса Label в этот метод.
public void info(player playerobj, Label label)
{
label.Text("Имя игрока: {0}", playerobj.name);
}
и в дальнейшем такой подход приведёт к говнокоду. Вашу задачу нужно решать по-другому.
Что мешает вместо
player1.info(player1);
написать сразу
player_name1.Text("Имя игрока: {0}", playerobj.name);
в обработчике кнопки?