关于this用法的问题

youyabbs 2005-07-30 08:00:05
麻烦高手帮助我一下,我对C#中this关键字的用法有疑惑 。书上说this关键字表示类的当前实例。

举个例子: private void button_Click(object sender,System.EventArgs e)
{
this.Text="哈哈哈哈";
}
上面这个例子中用this我大概能理解,这里的this代表的应该就是button 这个对象。
但是下面例子中的this是怎么回事我就不知道了?
private void button_Click(object sender,System.EventArgs e)
{
string output;
output=this.txtName.Text; //这里的txtName是一个文本框控件名

请问一下,这里的this能不能不要呢,我认为不要第2个例子中的this是不是可以不要呢,或者是不是可以用button这个名字替换this呢。还有我上面有理解错误的地方,也麻烦各位前辈指导一下,谢谢

...全文
165 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovexyz 2005-07-31
  • 打赏
  • 举报
回复
建议没有读过的人,有空读读《C# Primer》甚至《C++ 编程思想》之类书

看书要认真看,不是为了解决某个问题而扫一眼。要带着剖析的眼光去看
lovexyz 2005-07-31
  • 打赏
  • 举报
回复
呵呵,说实话
我C#没认真看过几天,但大二时上C++从没有拉过课,又碰到个好老师。看过几本C++经典书。
可以说是认认真真的将面向对象的思想学习了一下,以后遇到什么C#啊、Java啊都是小Case
(不过,我真正开始理解面向对象是在看Java与设计模式后,然后发现自己还很肤浅)
wxwx110 2005-07-30
  • 打赏
  • 举报
回复

public class a
{
private int i;

public a(int i)
{
this.i = i;
}
}
this指的就是当前类a的一个实例只不过这个实例现在还没有创建用this暂时代替一下而已
wxwx110 2005-07-30
  • 打赏
  • 举报
回复
private void button_Click(object sender,System.EventArgs e)
{
this.Text="哈哈哈哈";

private void button_Click(object sender,System.EventArgs e)
{
string output;
output=this.txtName.Text; //这里的txtName是一个文本框控件名
}

这里的this指的都是当前包含些控件的FORM的对象
wj021chen 2005-07-30
  • 打赏
  • 举报
回复
呵呵,this也有不能去的情况,如下:(有点BT是吧?)

public class a
{
private int i;

public a(int i)
{
this.i = i;
}
}

this 其实还有些别的用外,比如说在写拷贝构造时防址对自己赋值
又如用在静态成员上
------------------------------------------
public a(int i)这句中的int i是private int i 的么?
那后面的this.i = i 中的第一个i 是public中的,后面一个是private中的是么?
leonchenjian 2005-07-30
  • 打赏
  • 举报
回复
呵呵,this也有不能去的情况,如下:(有点BT是吧?)

public class a
{
private int i;

public a(int i)
{
this.i = i;
}
}

this 其实还有些别的用外,比如说在写拷贝构造时防址对自己赋值
又如用在静态成员上
-----------
lovexyz(一瑞) 说的对, 不过我觉得最好还是避免这样的参数命名
zhujiechang 2005-07-30
  • 打赏
  • 举报
回复
this指向该类,
public clase a
{
this就是我啊。说白了实例化的a
}
zzk82 2005-07-30
  • 打赏
  • 举报
回复
学习一下
lovexyz 2005-07-30
  • 打赏
  • 举报
回复
呵呵,this也有不能去的情况,如下:(有点BT是吧?)

public class a
{
private int i;

public a(int i)
{
this.i = i;
}
}

this 其实还有些别的用外,比如说在写拷贝构造时防址对自己赋值
又如用在静态成员上
youyabbs 2005-07-30
  • 打赏
  • 举报
回复
第一个例子中的button是一个命令按钮名,这样的话,结果也同样是把命令按钮所在窗体的标题设成“哈哈哈哈”吗 ?
还有就是第2个例子中的this,也是指的控件所在的窗体吗,也就是说我第2个例子中的this也可以用窗体名代替?
leonchenjian 2005-07-30
  • 打赏
  • 举报
回复
楼主理解错了, 楼主所指的this应该是类(Form)的当前实例, 就是说 this.Text="哈哈哈哈";是将窗体的标题设成"哈哈哈哈"

所有的this都可以去掉

111,094

社区成员

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

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

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