C# this 关键字

2025 年 8 月 6 日 | 阅读 7 分钟

在 C# 编程语言中,`this` 关键字指向类的当前实例。它主要用于访问实例成员,例如字段、方法和属性。当存在与参数同名的成员时,`this` 关键字非常重要。此外,`this` 关键字还用于引用被调用以执行与该实例相关的额外处理或计算的实例。

this 关键字的语法

它具有以下语法。

在这个语法中,

  • this: 表示定义类的当前实例的关键字。
  • memberName: 表示类变量的名称。
  • parameterName: 表示传递给方法或构造函数的局部变量或参数。

C# this 关键字的基本示例

让我们看一个说明性示例,说明 `this` 关键字如何引用 C# 编程 中当前类的字段。

示例

编译并运行

输出

The name is John
The age is 20

说明

在此示例中,我们创建了一个名为 Student 的类,该类包含两个字段:name 和 age,然后创建了一个接受两个参数的构造函数。之后,我们创建了 ShowDetails() 方法来显示学生的姓名和年龄。在 main() 方法中,我们创建一个 student1 对象并用值初始化它。之后,调用 ShowDetails() 方法并显示学生的详细信息。

使用 this 关键字初始化类字段和构造函数

让我们举一个例子来说明 `this` 关键字用于初始化类字段和构造函数

示例

编译并运行

输出

101  Michael  890000
102  Stuart  59000

说明

在此示例中,我们创建了一个名为 Staff 的类,该类包含三个字段:StaffId、StaffName 和 StaffSalary,然后创建了一个接受三个参数的构造函数。之后,我们创建了 ShowInfo() 方法来显示 StaffId、StaffName 和 StaffSalary。在 main() 方法中,我们创建 staff1 和 staff2 对象,然后用值初始化它们。之后,调用 ShowInfo() 方法并显示员工的详细信息。

C# 中 this 关键字的用法

C# 中 `this` 关键字有多种用法。其中一些如下:

  • 它用于将当前对象的引用传递给另一个方法。
  • 它用于访问当前类的成员。
  • 它用于调用构造函数。
  • 它用于定义和应用扩展方法。

C# 中 this 关键字的特点

在 C# 中,`this` 关键字具有以下几个特点:

  • 在执行成员函数时,`this` 关键字会自动创建。
  • 静态函数不允许在 C# 中使用 `this` 关键字。
  • 'this' 关键字不允许在静态函数中使用,因为静态成员属于类本身,而不是任何实例。

使用 this 关键字的不同方法

C# 中使用 `this` 关键字有多种方法。其中一些如下:

1) 访问数据成员

在 C# 中,当方法参数与对象的成员变量同名时,`this` 关键字用于解决命名冲突。

使用 this 关键字访问数据成员示例

让我们举一个例子来演示如何在 C# 中使用 `this` 关键字访问数据成员。

示例

编译并运行

输出

Value of number: 10

说明

在此示例中,我们创建了一个 Sample 类,该类包含一个私有的整数数据成员以及 AssignValue 和 Display 两个方法。AssignValue 方法使用 'this' 关键字设置数字的值。在 main 方法中,我们创建一个对象并赋值,然后调用 Display() 方法显示结果。

2) 返回对象(方法链式调用)

在 C# 编程语言中,在单个语句中对同一对象调用多个方法的技巧称为方法链式调用。`this` 关键字对于启用方法链式调用至关重要,因为它返回类的当前实例。

使用 this 关键字返回对象示例

让我们举一个例子来说明 C# 中的方法链式调用。

示例

编译并运行

输出

The value is 25

说明

在此示例中,我们创建了一个 Chain 类,该类包含一个私有的整数数据成员以及 SetValue() 和 Display() 两个方法。之后,SetValue() 方法使用 `this` 关键字返回当前对象,从而实现方法链式调用。最终,它允许我们在单个语句中对同一对象调用多个方法,从而提高了代码的可读性和流畅性。

3) 在 C# 中传递当前对象

在 C# 中,`this` 关键字用于引用类的当前实例。它可以用来将当前对象作为参数传递给方法或构造函数。

使用 this 关键字传递当前对象示例

让我们看一个示例来说明如何在 C# 中使用 `this` 关键字传递当前对象。

示例

编译并运行

输出

Inside Show method

说明

在此示例中,我们定义了 Sample 类,该类包含 Show()、Call() 和 Execute() 三个方法。Show() 方法使用 Console.WriteLine() 函数显示值。Call() 方法将类的对象作为参数,并调用其 Show() 方法。在 Execute() 方法中,使用 `this` 将当前对象传递给 Call() 方法。之后,我们创建 Sample 类的对象并调用 execute 函数。

在 C# 构造函数中使用 this 关键字

在 C# 中,`this` 关键字在构造函数内部使用,以引用类的当前实例。它可以用来调用同一类中的另一个构造函数。

使用 this 关键字的构造函数示例

让我们举一个例子来解决 C# 中构造函数中使用 `this` 关键字的命名冲突。

示例

编译并运行

输出

Constructor executed. Initial number: 10
Updated Number: 20

说明

在此示例中,我们创建了一个 Sample 类,该类包含一个私有的整数数据成员以及 UpdateNumber() 和 Show() 两个方法。Sample() 构造函数使用 `this` 关键字设置数字的初始值,以解决命名冲突。UpdateNumber() 方法用于更新数字的值,Show() 方法用于显示数字的更新值。在 Main() 方法中,我们创建一个对象,设置其值,并通过方法链式调用显示它。

结论

总之,'this' 关键字在 C# 编程语言中指向类的当前实例。它主要用于从访问中检索成员、实例成员和构造函数。它用于将当前对象作为参数传递给另一个函数。通过返回当前对象,它提高了代码的可读性并支持方法链式调用。

C# this 关键字常见问题解答

1) C# 中的 this 关键字是什么?

在 C# 编程语言中,`this` 关键字指向类的当前实例。它主要用于访问实例成员,包括字段、方法和属性。它用于解决与数字的命名冲突。

2) this 关键字可以在 C# 的静态方法中使用吗?

否,C# 中的静态方法不能使用 `this` 关键字,因为静态方法与类相关。

3) this 关键字可以作为参数传递吗?

是的,我们可以将 `this` 关键字作为参数传递。

4) this 是 C# 中的指针吗?

否,`this` 是 C# 中的关键字。

5) this 关键字可以在 C# 的哪里使用?

在 C# 编程语言中,`this` 关键字用于调用一个构造函数到另一个,将当前对象作为参数传递,解决字段和参数之间的命名冲突,并通过返回当前对象来支持方法链式调用。


下一主题C# static