namespace WindowsApplication1
{
public partial class Form1 : Form
{
int x, y;
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{ x = int.Parse(textBox1.Text); y = int.Parse(textBox2.Text);
Child child = new Child(x, y); //在初始坐标(x,y)画 新的 图形
} private void button2_Click(object sender, EventArgs e)
{
x = int.Parse(textBox1.Text); y = int.Parse(textBox2.Text);
child.config(50,50); //跟踪新坐标(x,y)重画该图形
}
}
}
namespace WindowsApplication1
{
class Child
{
public Child(int x,int y)
{
//在初始坐标(x,y)画图形
}
public void config(int x,int y)
{
//跟据新坐标(x,y)重画图形
}
}
}Child类是一个跟据坐标画图形(如画圆)的类
我的目的是button1_Click跟据坐标创建一个图形,然后button2_Click跟据新坐标改变该图形的位置(重画)
当我第一次执行button1_Click后,要求每次button2_click执行改变的是同一个对象,直到重新单击button1_click创建新的对象以前学的是面向过程的,觉得弄个全局变量之类的就可以了,可最近刚学习C#,对面向对象的编程方法不太熟悉..
如果用我上面写的button2_Click如预料的提示不存在child这个实例..
请问应该怎样设计才能达到要求.谢谢!
{
public partial class Form1 : Form
{
int x, y;
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{ x = int.Parse(textBox1.Text); y = int.Parse(textBox2.Text);
Child child = new Child(x, y); //在初始坐标(x,y)画 新的 图形
} private void button2_Click(object sender, EventArgs e)
{
x = int.Parse(textBox1.Text); y = int.Parse(textBox2.Text);
child.config(50,50); //跟踪新坐标(x,y)重画该图形
}
}
}
namespace WindowsApplication1
{
class Child
{
public Child(int x,int y)
{
//在初始坐标(x,y)画图形
}
public void config(int x,int y)
{
//跟据新坐标(x,y)重画图形
}
}
}Child类是一个跟据坐标画图形(如画圆)的类
我的目的是button1_Click跟据坐标创建一个图形,然后button2_Click跟据新坐标改变该图形的位置(重画)
当我第一次执行button1_Click后,要求每次button2_click执行改变的是同一个对象,直到重新单击button1_click创建新的对象以前学的是面向过程的,觉得弄个全局变量之类的就可以了,可最近刚学习C#,对面向对象的编程方法不太熟悉..
如果用我上面写的button2_Click如预料的提示不存在child这个实例..
请问应该怎样设计才能达到要求.谢谢!
Child child = new Child(x, y);这句声明放在button1_Click外,即和你声明的x,y在一起声明
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{ Draw();
} private void button2_Click(object sender, EventArgs e)
{
Draw();
}
private void Draw()
{ int x = int.Parse(textBox1.Text);
int y = int.Parse(textBox2.Text);
if (child = null) child = new Child(x, y);
else child.config(x,y);
}
if (child = null) child= new Child(x, y);
else child.config(x,y);
}
这样第二次以上执行时就没能创建新对象了...
http://terrylee.cnblogs.com/archive/2005/12/09/293509.html
我想class Singleton对应的就是我上面的class Client吧
1public sealed class Singleton
2{
3 static Singleton instance=null;
4
5 Singleton()
6 {
7 }
8
9 public static Singleton Instance
10 {
11 get
12 {
13 if (instance==null)
14 {
15 instance = new Singleton();
16 }
17 return instance;
18 }
19 }
20}但是static Singleton instance=null;是静态的,当第二次创建Singleton的时候(instance就不null了),这时
return instance不就成了上一次的new Singleton()的实例了吗?我刚学c#可能理解有误,能否就我上面的例子给个实例.不胜感激! 我是想实现俄罗斯方块那样的游戏,我想创建一个对象(积木),然后控制该对象(积木)的位置,直到该对象(积木)落在地上了,再重新创建一个新对象,这时控制的就是这个新的对象的方向了...
public partial class Form1 : Form
{
int x, y; IList<Child> clist = new List<Child>();//声明一个泛型集合 public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{ x = int.Parse(textBox1.Text); y = int.Parse(textBox2.Text);
Child child = new Child(x, y); //在初始坐标(x,y)画 新的 图形 clist.Add(child);//把声明的对象放到集合里
} private void button2_Click(object sender, EventArgs e)
{
x = int.Parse(textBox1.Text); y = int.Parse(textBox2.Text);
//child.config(50, 50); //跟踪新坐标(x,y)重画该图形 clist[0].config(50, 50);//操作集合里的对象 }
}
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
int x = int.Parse(textBox1.Text);
int y = int.Parse(textBox2.Text);
child = new Child(x, y);
} private void button2_Click(object sender, EventArgs e)
{
if (child == null) return;
int x = int.Parse(textBox1.Text);
int y = int.Parse(textBox2.Text);
child.config(x,y);
}