通过单击按钮调用类函数
Posted
技术标签:
【中文标题】通过单击按钮调用类函数【英文标题】:Call a class function with button click 【发布时间】:2017-10-01 06:03:12 【问题描述】:我尝试在按钮单击事件中使用一个类。
文件:Character.cs
public class Character
public Character(string name, int health, int weight, int gold, Inventory inventory)
this.Name = name;
this.Health = health;
this.Weight = weight;
this.Gold = gold;
this.Inventory = inventory;
public string Name;
public int Health;
public int Gold;
public int Weight;
public Inventory Inventory;
我在 Form1.cs 文件中创建了一个角色。
Character Adventurer = new Character("Geralt von Riva", 100, 50, 5, new Inventory(new Weapon(1, "Needle", 5, 5, 15, 0), new Armor(2, "Jerkin", 3, 11, 5), new Potion(3, "Little Healhy", 2, 0, 20)));
这很好用。现在,我想在表单中添加一个按钮(此处名为 button1)。所以我将一个按钮从工具箱拖放到表单设计器中。稍微双击后,visual studio 添加了这行代码
private void button1_Click(object sender, EventArgs e)
// here i would like to do something like this:
Adventurer.Inventory.WeaponList.Add(new Weapon(...));
问题是,我不能在 Form1.cs 文件的公共 Form1() 类之外使用 Adventurer。我如何让这个冒险者“公开”?我对此有点陌生,所以请善待。
【问题讨论】:
简单公开冒险家 你在哪里声明你的冒险者?在方法中还是在类中? 评论 Nr.1 解决了这个问题。不知道我为什么不自己想出这个。谢谢! 【参考方案1】:为了您能够访问实例,您应该在全局范围内声明变量,例如
public Form1 : Form
private Character Adventurer = null;
public Form1()
Adventurer = new Character(.....);
private void button1_Click(object sender, EventArgs e)
// here i would like to do something like this:
Adventurer.Inventory.WeaponList.Add(new Weapon(...));
【讨论】:
我建议使用属性,而不是公共字段。 @Mafii,这是真的,但如果这是 OP 所缺少的,那么它也可能是一个private
字段......请参阅答案中的编辑。以上是关于通过单击按钮调用类函数的主要内容,如果未能解决你的问题,请参考以下文章
Django如何通过单击带有变量的提交按钮从ajax调用views.py中的函数