c#中对象可以同名么?

Seed517 2009-02-06 10:58:47
为按钮添加响应函数,每单击一次创建一个X类的名叫x的对象,那岂不是这些对象都同名了?
...全文
180 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ciwodio 2009-02-07
  • 打赏
  • 举报
回复
在单击事件里去执行指定的函数不就完了?
vrhero 2009-02-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 JGood 的回复:]
在.net中,对象只有其占用的内存被gc回收的时候,其生命周期才结束.
离开了执行函数, 超出了该对象的作用域,因为不再被引用,就被clr标记为垃圾,但它在内存中确确实实还存在,直到被gc回收.
[/Quote]
这个和lz的问题没关系...

x对象的x是变量标识不是对象标识,就算gc还没有回收上次产生的x对象,新的x对象的对象标识必定是不同的...所以说每次都是不同的对象,和同名没有关系...
JGood 2009-02-07
  • 打赏
  • 举报
回复
理解就好了, 没必要在乎字面上的一些概念定义.
JGood 2009-02-07
  • 打赏
  • 举报
回复
在.net中,对象只有其占用的内存被gc回收的时候,其生命周期才结束.
离开了执行函数, 超出了该对象的作用域,因为不再被引用,就被clr标记为垃圾,但它在内存中确确实实还存在,直到被gc回收.
vrhero 2009-02-07
  • 打赏
  • 举报
回复
这样看来...楼主的问题其实很简单,都想复杂了...

每单击一次创建一个X类的名叫x的对象...每次都是不同的对象,和同名没有关系,和内存也没有关系...这是个生存期的问题...
JGood 2009-02-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vrhero 的回复:]
引用 4 楼 JGood 的回复:
没关系,名字一样, 在内存中的位置不一要就可以了

你要提到namespace还靠点谱(但是lz的需求跟namespace也不靠谱)...内存位置?给点代码让我们学习学习...
[/Quote]


为按钮添加响应函数,每单击一次创建一个X类的名叫x的对象,那岂不是这些对象都同名了?
====>
我理解楼主的意思是这样的:
假如按钮响应函数是这样的:

void Btn_Click(object sender, EventArgs e)
{
X x = new X();
}

这里的话,每次点击按钮,都会创建X的一个对象,用x来引用. 楼主所谓的名叫x的对象,是指用变量x来引用该对象
每次点击这个按钮执行响应函数,都会开辟不同的栈,所以对象在内存中的位置是不同的,即使使用同名的变量来引用.
vrhero 2009-02-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 JGood 的回复:]
没关系,名字一样, 在内存中的位置不一要就可以了
[/Quote]
你要提到namespace还靠点谱(但是lz的需求跟namespace也不靠谱)...内存位置?给点代码让我们学习学习...
JGood 2009-02-07
  • 打赏
  • 举报
回复
没关系,名字一样, 在内存中的位置不一要就可以了
zhuxingkuan_china 2009-02-07
  • 打赏
  • 举报
回复
用函数或数组啊,你尝试下就知道拉那中比较好啊
vrhero 2009-02-07
  • 打赏
  • 举报
回复
用X数组或集合...

111,130

社区成员

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

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

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