public class Student() { private string name; public string Name(string name) { this.name = name; } }
class A { private int a; public void SetA(int num) { a=num; } }以上a=num其实是this.a=num; this存在实例方法中(非静态方法),代表当前对象,即每个this的值为对应对象在内存中的地址 A a=new A();//系统先为a分配内存空间,接着把内存地址赋给a的this,然后调用A类的构造函数
本文讨论对类实例使用 this。有关其在扩展方法中使用的更多信息,请参见扩展方法(C# 编程指南)。
以下是 this 的常用用途:限定被相似的名称隐藏的成员,例如:C# 复制代码
public Employee(string name, string alias)
{
// Use this to qualify the fields, name and alias:
this.name = name;
this.alias = alias;
}
将对象作为参数传递到其他方法,例如: 复制代码
CalcTax(this);
声明索引器,例如:C# 复制代码
public int this[int param]
{
get { return array[param]; }
set { array[param] = value; }
}
由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有 this 指针。在静态方法中引用 this 是错误的。示例
在本例中,this 用于限定 Employee 类成员 name 和 alias,它们都被相似的名称隐藏。this 还用于将对象传递到属于其他类的方法 CalcTax。C# 复制代码
class Employee
{
private string name;
private string alias;
private decimal salary = 3000.00m; // Constructor:
public Employee(string name, string alias)
{
// Use this to qualify the fields, name and alias:
this.name = name;
this.alias = alias;
}
// Printing method:
public void printEmployee()
{
Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);
// Passing the object to the CalcTax method by using this:
Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
} public decimal Salary
{
get { return salary; }
}
}class Tax
{
public static decimal CalcTax(Employee E)
{
return 0.08m * E.Salary;
}
}class MainClass
{
static void Main()
{
// Create objects:
Employee E1 = new Employee("Mingda Pan", "mpan"); // Display results:
E1.printEmployee();
}
}
/*
Output:
Name: Mingda Pan
Alias: mpan
Taxes: $240.00
*/
this.TextBox1,就可以访问到窗体上的TextBox1,因为窗体上有这个对象,是这个对象的一个成员,this表示窗体对象,this.TextBox1,就表示窗体对象里面定义的那个TextBox1
{
private string name;
public string Name(string name)
{
this.name = name;
}
}
class A
{
private int a;
public void SetA(int num)
{
a=num;
}
}以上a=num其实是this.a=num;
this存在实例方法中(非静态方法),代表当前对象,即每个this的值为对应对象在内存中的地址
A a=new A();//系统先为a分配内存空间,接着把内存地址赋给a的this,然后调用A类的构造函数
http://msdn.microsoft.com/zh-cn/library/dk1507sz(VS.90).aspx
简单点说.我们知道我们编写的程序在内存中主要分为至少两个部分,一是代码部分,一是数据部分.
一个类可以产生多个实例,而这些实例在的数据可能不能,在内存中被保存为多个部分.而代码部分其实只保存
一份,那么如何知道当前的代码是在哪个实例的数据上进行执行,这里在这行时就会传入一个指针过去.告诉当前代码在指定数据域执行,这是就需要用到this指针,你可能不需要使用,但是.net会给你在后台处理掉的.
属性 public int S(int number)
{
this.number=number;//属性中的参数与实例变量同名,使用this关键字可以将参数引用到的值指向当前的实例变量并且赋值给它
} this指向当前要引用的对象}
我要杀鸡
我要吃饭他要杀鸡
他要吃饭这个我,就是this!
如果你学过 base 的话,要注意区分它们。 补一个哈: base 是引用当前父类的构造函数