C#:关于this关键字的作用

我只知道:在类中的变量和方法变量同名,就要用this
请问this还有其他作用吗?请举简单的例子作说明.

this 关键字将引用类的当前实例。静态成员函数没有 this 指针。this 关键字可用于从构造函数、实例方法和实例访问器中访问成员。

以下是 this 的常用用途:

限定被相似的名称隐藏的成员,例如:
public Employee(string name, string alias)
{
this.name = name;
this.alias = alias;
}
将对象作为参数传递到其他方法,例如:
CalcTax(this);
声明索引器,例如:
public int this [int param]
{
get
{
return array[param];
}
set
{
array[param] = value;
}
}
在静态方法、静态属性访问器或字段声明的变量初始值设定项中引用 this 是错误的。

参考资料:MSDN

温馨提示:内容为网友见解,仅供参考
第1个回答  2007-12-09
this关键字指代当前对象,它会产生一个当前对象的句柄,可以用它直接引用对象.

C#中this关键字用途:

1. 最常用的,也就是你提到的:解决可能在实例变量和局部变量之间发生的任何同名的冲突。

2.将对象作为参数传递到其他方法

3.声明索引器

using System;
class Employee
{
private string _name;
private int _age;
private string[] _arr = new string[5];

public Employee(string name, int age)
{
// 使用this限定字段,name与age
this._name = name;
this._age = age;
}

public string Name
{
get { return this._name; }
}

public int Age
{
get { return this._age; }
}

// 打印雇员资料
public void PrintEmployee()
{
// 将Employee对象作为参数传递到DoPrint方法
Print.DoPrint(this);
}

// 声明索引器
public string this[int param]
{
get { return _arr[param]; }
set { _arr[param] = value; }
}

}
class Print
{
public static void DoPrint(Employee e)
{
Console.WriteLine("Name: {0}\nAge: {1}", e.Name, e.Age);
}
}

class TestApp
{
static void Main()
{
Employee E = new Employee("Hunts", 21);
E[0] = "Scott";
E[1] = "Leigh";
E[4] = "Kiwis";
E.PrintEmployee();

for(int i=0; i<5; i++)
{
Console.WriteLine("Friends Name: {0}", E[i]);
}

Console.ReadLine();
}
}
第2个回答  2007-12-10
简单的说 this的作用就是用来判断当前的实例,比如在form1中编写码时,它就代表form1的对象,所以就可以这样用: this.name ,this.Location等等
第3个回答  2007-12-10
this顾名思义,也就是当前的对象,用this可以访问该对象中的一系列属性,方法(除了静态的),这是面向对象编辑最基本的一个思想哦
第4个回答  2007-12-09
一楼的哥们真细心,说的挺详细的.

C#中的this关键字到底是什么,怎么用?求详解
this 关键字引用类的当前实例。以下是 this 的常用用途:限定被相似的名称隐藏的成员,例如:public Employee(string name, string alias){ this.name = name;this.alias = alias;} 将对象作为参数传递到其他方法,例如:CalcTax(this);声明索引器,例如:public int this [int param]{ get { retur...

C#中this关键字的作用?能不能理解为引用类的对象,如一个引用集合中的...
this操作数代表的是指向此对象的参考指针。也就是说,在建立对象的实体后,我们就可以使用this来存取到此对象实体。另外,this操作数也可以用来解决名称相同的问题。需要注意的是:静态方法中不能使用this。Example 1:this操作数用来解决名称相同的问题。class AAA { ...public void BBBB(string a){ a...

C#中this 关键字的用法,希望简单易懂点。。。
this是始终指向当前对象的。在C#中,函数或者属性都应该属于一个对象 所以只要在对象中用“this.”就可以看到该对象所有的方法属性

谁能告诉我C#中this关键字到底是什么意思?请用通俗点的话来说...
当我们在主程序调用这个类方法之前,我们要先为他申明存储区。当对象方法函数填充的数据压栈时,我们可以取得他的地址,这就是this的作用处了,this指向这块栈区,这样他就可以对栈中数据进行操作了。当数据出栈时,我们自然无法对他进行访问。所以说程序设计者这么做的原因也有可能是防止程序员无意引起的...

C#中this没作用吧
非也,this和好用的。int x=10;public void test(){ int x=10;messageBox.show(x.tostring());messageBox.show(this.x.tostring());不一样吧、}

C#中关于关键词THIS的完整定义及用法。请在用法中增加举例说明_百度...
this 关键字的含义?答:this 是一个保留字,仅限于构造函数和方法成员中使用 在类的构造函数中出现表示对正在构造的对象本身的引用,在类的方法中出现表示对调用该方法的对象的引用,在结构的构造上函数中出现表示对正在构造的结构的引用,在结构的方法中出现表示对调用该方法的结果的引用 this 保留字...

c#中this的用法
1、在构造函数中this用于限定被相同的名称隐藏的成员,例如:public class Student{ public Student(string name, string age){ this.name = name;this.age = age;}} 2、将对象作为参数传递到其他方法时也要用this表达,例如:fun(this)。3、可以通过this[]来声明索引器,例如:public...

C# 非静态的字段,方法或属性"_110262001.Form1.label1"要求对象引用_百...
回答:this.label1.text this关键字引用被访问成员所在的当前实例。静态成员函数没有this指针。 this关键字可以用来从构造函数,实例方法和实例化访问器中访问成员。 不能在静态方法。静态属性访问器或者域声明的变量初始化程序中使用this关键字,这将会产生错误。 1. 在类的构造函数中出现的this作为一个值类...

c#中this是不是用不用都一样???
AAAa=newAAA();a.aaa;在静态的方法中不能使用this 如main方法就是一个静态方法 this是保留的指针。指向当前对象。它的好处就是在编译期就可以获得对象的地址。比如一个类中有个成员类。成员类需使用上层类的函数,就可以把this传到成员类中。this关键字引用类的当前实例 ...

c#中的this保留字到底是什么意思?有什么用?
比如你的类中有一个成员变量为a。在你的成员函数中有定义了一个局部变量a。此时就必须使用this关键字来指示类的成员。也就是类的成员变量a写为this.a

相似回答