关于C#中的执行顺序问题?

下面一段代码:namespaceVirtualDemo{classProgram{staticvoidMain(string[]args){Ba=newB();Conso... 下面一段代码:
namespace VirtualDemo
{
class Program
{
static void Main(string[] args)
{
B a = new B();
Console.ReadKey();
}
}
public class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields()
{
}
}

public class B : A
{
int x = 1;
int y;
public B()
{
y = -1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}", x, y);
}
}
}

输出为:x=1,y=0

请问是怎么得出来的???
展开
 我来答
weiwg521
2011-06-11 · 超过24用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:58.8万
展开全部
建立B的实例时由于B继承自A,在运行B的构造函数时会先调用基类的构造函数,执行到最后x=1;
y=-1是对的,你的问题是在y还没有变成-1之前就已经输出了,只不过程序没执行完没显示而已;
你可以用vs2008调试下就知道了,按F11键逐步调试
户学民r1
2011-06-11 · TA获得超过2021个赞
知道小有建树答主
回答量:1605
采纳率:0%
帮助的人:764万
展开全部
单击button按钮后触发它的事件,同时出发pageload事件,pageload有个属性IsPostBack,设置为假,也就是这样:在pageload中加入代码if(!IsPostBack){},这样就页面在第一次加载时触发pageload事件,下次再加载就不会再次出发了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式