c#this指针的用法
时间: 2023-07-27 07:20:52 浏览: 138
在C#中,没有this指针的概念。相对应的,在C#中使用this关键字来引用当前对象,它主要有以下几种用法:
1. 在成员方法中调用其他成员方法:
```csharp
class MyClass {
public void Func1() {
Console.WriteLine("调用了Func1方法");
this.Func2();
}
public void Func2() {
Console.WriteLine("调用了Func2方法");
}
}
static void Main(string[] args) {
MyClass obj = new MyClass();
obj.Func1();
}
```
在成员方法Func1()中,我们使用了this关键字来调用成员方法Func2()。这里的this关键字实际上表示当前对象,因此可以通过this.Func2()来调用当前对象的成员方法Func2()。
2. 在构造函数中调用其他构造函数:
```csharp
class MyClass {
public MyClass() : this(0) {
Console.WriteLine("调用了不带参数的构造函数");
}
public MyClass(int x) {
Console.WriteLine("调用了带一个参数的构造函数,参数为:" + x);
}
}
static void Main(string[] args) {
MyClass obj = new MyClass();
MyClass obj2 = new MyClass(10);
}
```
在构造函数MyClass()中,我们使用了this关键字来调用带一个参数的构造函数MyClass(int x)。这里的this关键字实际上表示当前对象,因此可以通过this(0)来调用当前对象的带一个参数的构造函数MyClass(int x),参数为0。
3. 在属性或方法中访问成员变量:
```csharp
class MyClass {
private int x;
public int X {
get {
return this.x;
}
set {
this.x = value;
}
}
public void Func() {
Console.WriteLine("X的值为:" + this.X);
}
}
static void Main(string[] args) {
MyClass obj = new MyClass();
obj.X = 10;
obj.Func();
}
```
在属性X的get和set方法以及成员方法Func()中,我们使用了this关键字来访问成员变量x。这里的this关键字实际上表示当前对象,因此可以通过this.X和this.x来访问当前对象的成员变量X和x。
需要注意的是,在C#中,this关键字是隐式存在的,不需要显式地使用this来引用当前对象。在大多数情况下,可以省略this关键字,并直接使用成员变量、成员方法或属性的名称来访问。但是,在与函数参数或局部变量名称发生冲突时,需要使用this关键字来明确地表示访问的是成员变量、成员方法或属性。
阅读全文