① 保留字this仅限于在构造函数,类的方法和类的实例中使用,它有以下定义:
→ 在类的构造函数中出现的this作为一个值类型,它表示对正在构造的对象本身的引用。
→ 在类的方法中出现的this作为一个值类型,它表示对调用该方法的对象的引用。
→在结构的构造函数中出现的this作为一个变量类型,它表示对正在构造的结构的引用。
→在结构的方法中出现的this作为一个变量类型,它表示对调用该方法的结构的引用。
除此之外,在其它地方使用this保留字都是不合法的。
(在类中是值类型,在结构中是变量类型。)
②this 关键字通常用于对象构造函数,用来指当前对象。
对于 JScript 的客户版本,如果在其他任何对象的上下文之外使用 this,则它指的是window 对象。
this 关键字将引用类的当前实例。静态成员函数没有 this 指针。this 关键字可用于从构造函数、实
例方法和实例访问器中访问成员。
③this 关键字引用为其调用方法的当前实例。静态成员函数没有 this 指针。this 关键字可用于从构造
函数、实例方法和实例访问器中访问成员。
④
错误观点例子
通俗一点,比如你在一个类中,this就是该类
如:
... class a
{
public string Empid;
public string EmpName;
....
this.Empid=this.GetParaValue("EmpID");
this.EmpName =this.GetParaValue("username");
//等同于
//a.Empid=a.GetParaValue("EmpID");
//a.EmpName =a.GetParaValue("username");
}
正确观点例子
class myclass
{
public static string stra;
public int ib;
public void test()
{
this.ib=1;
this.stra="a";//出错,实例无法访问静态成员
}
}
因此通俗的说this是类的实例而不是类。。。this就是当前的实例对象
⑤
错误观点
namespace csdn
{
public class csdn:
{
private string FunName ="";
public csdn()
{
string fName = "fdsafdsaf";
///FunName是全局变量,在这里用this.出来
this.FunName = fName;
}
private void Bid()
{
string fName = "fdsafdsaf";
///这里FunName是局部变量不能用this.出来
string FunName = fName;
}
}
}
正解观点
话说的有错纠正一下
private void Bid()
{
string fName = "fdsafdsaf";
///这里的FunName就相当于局部变量
string FunName = fName;
}
⑥
比如这条
this.FunName =fName ;
它和
string FunName =fName ;
区别是什么?
this.FunName是什么意思???
解析:
this.FunName =fName ;
中FunName在前面已经定义。
string FunName =fName ;
是现在定义的
this.FunName就是用前面已经定义的FunName来取值
this关键字的用法
浙公网安备 33010602011771号