C#,对象问题
对不起菜鸟问题,因为我刚刚开始使用C#。C#,对象问题
我有一个类
namespace WindowsFormsApplication1
{
class people
{
public int Cash;
public string LastName;
public void GiveCash(int amount) { this.Cash = this.Cash - amount; }
public void ReceiveCash(int amount) { this.Cash = this.Cash + amount; }
}
}
我初始化两个Object它。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
people viktor = new people() { Cash = 1000, LastName = "Jushenko" };
people julia = new people() { Cash = 500, LastName = "Timoshenko" };
}
但后来在代码中,我无法访问任何这些对象。 比如我,我使用
private void button1_Click(object sender, EventArgs e)
{ viktor.cash = 200; }
它类似于“名称‘胜利者’并不在这方面存在的......”我到底做错了什么?
谢谢!
您在Form1构造函数声明局部变量。超出范围后您无法访问它们。您应声明它们在类领域的,就像这样:
public partial class Form1 : Form
{
private people viktor;
private people julia;
public Form1()
{
InitializeComponent();
viktor = new people() { Cash = 1000, LastName = "Jushenko" };
julia = new people() { Cash = 500, LastName = "Timoshenko" };
}
字段viktor
和julia
现在是你的类的一部分,并可以从类中的方法来访问它们。
感谢,它工作! :) – Rob 2010-12-05 19:41:08
您的victor
变量的范围局部于Form1
构造函数,不能在其外部访问。
您需要将它提升一个领域,如果你想访问它在事件处理程序:
private people viktor;
public Form1()
{
InitializeComponent();
viktor = new people() { Cash = 1000, LastName = "Jushenko" };
people julia = new people() { Cash = 500, LastName = "Timoshenko" };
}
private void button1_Click(object sender, EventArgs e)
{
viktor.cash = 200;
// Note: the "julia" variable is not in scope here.
}
感谢,它工作! :) – Rob 2010-12-05 19:50:13
有不同的范围,你需要注意。你无法访问你的变量的原因是因为它们在你无法访问的范围内。
一个解决方案是移动的变量,他们的电流范围:它的标准例如
public partial class Form1 : Form
{
private people victor = null;
private people julia = null;
public Form1()
{
InitializeComponent();
this.viktor = new people() { Cash = 1000, LastName = "Jushenko" };
this.julia = new people() { Cash = 500, LastName = "Timoshenko" };
}
....
感谢,它工作! :) – Rob 2010-12-05 19:49:52
一个次要的事情,在C#中的名称类的首字母大写`人` – 2010-12-05 19:39:30