Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

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);
}
}
}

}

По дате
По рейтингу
Аватар пользователя
Новичок
8лет

класс 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);
в обработчике кнопки?