c#代码分析

来源:百度知道 编辑:UC知道 时间:2024/06/03 23:48:36
这是教材上一个进度指示器的实例,下面是代码:
其中的一个类:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
MyObject MyObjectl = new MyObject();//这里已经定义一个MyObjectl对象,为什么在下面还要重新定义MyObjectl对象
MyObjectl.PercentDone += new MyObject.PercentDoneHandler(this.HandlerPercentDone);

}
private void HandlerPercentDone(object sender, System.EventArgs e)
{
MyObject MyObj = (MyObject)sender;
lblPercentDone.Text = (int)(100 * MyObj.Percent) + "%";//(int)(100 * MyObj .Percent)这是不是字符串?不是的话怎么不报错
// Application.DoEvents;//这里是我注释掉的,教材有这段,有的话就报错
}

private void button1_Click(object sender, EventArgs e)
{
MyObject MyObjectl = new MyObject(); //这里是我加的代码,否则下面的MyObjectl无法使用,但是上面已经定义了MyObjectl对象
lblPercentDone.Text="0%";
lblPerce

MyObject MyObjectl = new MyObject();//这里已经定义一个MyObjectl对象,为什么在下面还要重新定义MyObjectl对象
你这个是局部变量
出了构造方法就不能用了

lblPercentDone.Text = (int)(100 * MyObj.Percent) + "%";//(int)(100 * MyObj .Percent)这是不是字符串?不是的话怎么不报错
你用字符串重载的+运算符将前面的数值和后面的%连接成了一个字符串了

// Application.DoEvents;//这里是我注释掉的,教材有这段,有的话就报错
那个是方法谢谢···你少了什么呢?想想

MyObject MyObjectl = new MyObject(); //这里是我加的代码,否则下面的MyObjectl无法使用,但是上面已经定义了MyObjectl对象
还是局部变量的问题

lblPercentDone.Text = 100 + "%";
你这马上就赋值为100%
而且不好意思,我没看见有进度条····

很简单。。因为你没有写改变进度条位置的语句