永发信息网

static变量传值的问题

答案:3  悬赏:0  手机版
解决时间 2021-01-04 09:25
  • 提问者网友:火车头
  • 2021-01-03 22:42
外部定义 static int housesid = 0;
protected void Page_Load(object sender, EventArgs e)
{
if(111)
{
housesid = int.Parse(dr[0].ToString());
}
if(222)
{
housesid = int.Parse(dr[0].ToString());
}
if(333)
{
housesid = int.Parse(dr[0].ToString());
}

}
protected void gwtitle_RowCommand(object sender, GridViewCommandEventArgs e)
{
Response.Redirect("~/frm/Show_Seek_Lease_Input.aspx?houses=" + housesid);
}

这是简单的代码
我在Show_Seek_Lease_Input.aspx页面接受的值为什么始终只是一个.而不变呢?
求高手解决
最佳答案
  • 五星知识达人网友:山君与见山
  • 2021-01-04 00:09
static变量只能初始化一次,以后会忽略对他所有的赋值操作,并驻留在内存里
全部回答
  • 1楼网友:枭雄戏美人
  • 2021-01-04 00:44
static变量只能初始化一次
  • 2楼网友:轮獄道
  • 2021-01-04 00:14
给你详细点,,注意主函数的z和p1函数的z不一样,在用call调用时,始终没调用主函数中的z,所以print输出时,z始终是2,p1函数中z默认开始为0。另外区别下传值和传地址,x没被定义,默认为byref传址,意思是当x变化时,相应的参数值(a或b)也变化,而y定义为byval传值,当y变化时,相应的参数(a或b)不会发生变化。 第一次: a = 1: b = 3: z = 2 call p1(a, b) 这步是把a=1,b=2调入p1函数中运算,z不调用,及x=a=1,y=b=3, p1函数中:x=x+z=1+0=1,. y=x-z=1-0=1, z=10-y=10-1=9, 返回时,由于只有x是传地址,所以才会变化,所以a=x=1,而b都不会随着参数变化而变化,z已在上面说明,所以b=3,z=2。 输出a,b,c为 1,3,2 第二次: call p1(b, a) 注意这次x=b=3 ,y=a=1,z不调用,p1函数中的z用staic定义过,所以这次是上次计算结果9. x=x+z=b+z=3+9=12 y=x-z=12-9=3 z=10-y=10-3=7 第二次返回时,b=x=12,而y是传值,所以a还是原值1,同样z也没调入,同样是2 输出a,b,c为 1,12,2
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯