关于属性,我怎么才能在一个方法运行后得到的值能在另一个方法里使用呢

curd0468 2008-05-13 11:26:12
public class T_ImageId2
{
public int t_ImageId = 0;
public int T_ImageId
{
get
{
return this.t_ImageId;
}
set
{
this.t_ImageId = value;
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
T_ImageId2 gt = new T_ImageId2();
gt.t_ImageId = 2;
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
T_ImageId2 gt2 = new T_ImageId2();
Response.Write(gt2.T_ImageId.ToString());
}

为什么我点击ImageButton1得到的结果是0,而不是2呢,我要怎么才能让点击的结果为2呢,请高人指教下,感激不尽。
...全文
103 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mikebai 2008-05-13
  • 打赏
  • 举报
回复
好好看下对象的作用域。
函数体内定义的对象,只在当前函数内有效。然后就回收了
Choi57671452 2008-05-13
  • 打赏
  • 举报
回复

public class T_ImageId2
{
public T_ImageId2(){}

public int T_ImageId{get; set;}
}

T_ImageId2 gt;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gt = new T_ImageId2();
gt.T_ImageId = 2;
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Response.Write(gt.T_ImageId.ToString());
}
XIEWH 2008-05-13
  • 打赏
  • 举报
回复
static T_ImageId2 gt =null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gt = new T_ImageId2();
gt.t_ImageId = 2;
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if(gt!=null)
Response.Write(gt2.T_ImageId.ToString());
}
yunfeng007 2008-05-13
  • 打赏
  • 举报
回复
你在asp.net下要想使用的话,不能这样用的,因asp.net基于http协议,为无状态的,你要把结果保存到session中才行
[Serializable]
public class T_ImageId2
{
private int t_ImageId = 0;
public int T_ImageId
{
get
{
return this.t_ImageId;
}
set
{
this.t_ImageId = value;
}
}
}
T_ImageId2 gt =null;

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ if(Session["gt"]==null)
{
gt = new T_ImageId2();
gt.t_ImageId = 2;
Session["gt"]=gt;
}
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if(Session["gt"]!=null)
{
gt = (gt)Session["gt"];
Response.Write(gt.T_ImageId.ToString());
}
}
patrickpan 2008-05-13
  • 打赏
  • 举报
回复
t_ImageId 最好声明为private吧
否则t_ImageId,T_ImageId都可以访问,容易混淆。
patrickpan 2008-05-13
  • 打赏
  • 举报
回复
[Code=C#]
T_ImageId2 gt = new T_ImageId2();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gt.T_ImageId = 2; //这里t_ImageId改为T_ImageId
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
//T_ImageId2 gt2 = new T_ImageId2();
Response.Write(gt.T_ImageId.ToString());
}

[/Code]
XIEWH 2008-05-13
  • 打赏
  • 举报
回复
t_ImageId 应该声明为private吧,要不用属性还有什么意义?直接就可以改t_ImageId的值了
curd0468 2008-05-13
  • 打赏
  • 举报
回复
不行啊两位老大,你们试下,还是0呀
ericzhangbo1982111 2008-05-13
  • 打赏
  • 举报
回复
public class T_ImageId2
{
public int t_ImageId = 0;
public int T_ImageId
{
get
{
return this.t_ImageId;
}
set
{
this.t_ImageId = value;
}
}
}
T_ImageId2 gt =null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gt = new T_ImageId2();
gt.t_ImageId = 2;
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if(gt!=null)
Response.Write(gt2.T_ImageId.ToString());
}
starts_2000 2008-05-13
  • 打赏
  • 举报
回复
public class T_ImageId2 
{
public int t_ImageId = 0;
public int T_ImageId
{
get
{
return this.t_ImageId;
}
set
{
this.t_ImageId = value;
}
}
}

T_ImageId2 gt = new T_ImageId2(); //要定义为全局变量
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gt.t_ImageId = 2;
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Response.Write(gt.T_ImageId.ToString());
}
patrickpan 2008-05-13
  • 打赏
  • 举报
回复
gt和gt2是两个实例,之间没有关系的。
这样可以达到你要的效果。
[Code=C#]
T_ImageId2 gt = new T_ImageId2();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gt.t_ImageId = 2;
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
//T_ImageId2 gt2 = new T_ImageId2();
Response.Write(gt.T_ImageId.ToString());
}
[/Code]
curd0468 2008-05-13
  • 打赏
  • 举报
回复
没有一个是可以的,不过一水寒老兄给了我另外一个解决问题的方法,就是把值先存到Cookies里,呵呵,谢谢各位,结贴了

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧