c#(.net)中的this是怎么规定的?感觉有点乱

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:58:14
书上说this关键字表示类的当前实例,
但是实际代码是这样:
private void button_Click(object sender,System.EventArgs e)
{
this.txtName.Text; //这里的txtName是一个文本框控件名
}
这里的this据说是代表form--是不是真的?
为什么这里的this不能代表那个按钮呢?
有没有关于this的比较全面的说明啊?

楼上的解释比较乱,这样理解比较好
首先你要把页面理解为一个类
你每个cs开始写的这句话
public partial class _Default: System.Web.UI.Page//default页

这是你创建了一个叫_Default 的继承于Page的类

winform的话是继承于Form的类!

this 就指的是你当前的这个_Default
不管你说的按钮,还是别的变量什么的,都是这个_Default里面的方法或者属性,或者变量!
也就是你往页面上拖放一个 TextBox ,等于就是 vs帮你自动在这个_Default类添加上了一个 TextBox类型的变量!,所以你this ,等于就是调用这个类里面的变量或者属性,或者方法!清楚了吗

楼上正确,我补充一下:
this 指代的是调用某成员函数的一个实例,所以这里的this就代表该form实例

而引发一个事件的控件被装箱在 sender 参数中,如果你这样:
Button myButton=(Button)sender;

则myButton就指代了你按下的那个按钮了。

你得清楚C#不是C++,是没有全局变量的,所以this和其它的成员都是在一个类中。现在this和那些控件都是form的成员。只不过this就是当前form对象的一个引用。所以你可以用this来访问form的所有成员。
private void button_Click()同样是form的成员,在这里用this,this代表的是窗体,而不是控件。
国内的书翻译稀烂,有的说this是对象,有的说是指针(在C++里才是指针)。我认为this是一个引用最合适。

。。。。。
LS你解释得对他来说可能更乱。。。。