C# 面试题 目录

C# 中如何定义扩展方法?

推荐答案

在C#中,扩展方法允许你向现有类型“添加”方法,而无需修改原始类型的代码或创建新的派生类型。扩展方法是通过静态类和静态方法定义的,并且必须使用 this 关键字来指定要扩展的类型。

在这个例子中,WordCount 是一个扩展方法,它扩展了 string 类型。你可以像调用普通的实例方法一样调用它:

本题详细解读

1. 扩展方法的定义

扩展方法必须定义在一个静态类中,并且方法本身也必须是静态的。方法的第一个参数必须使用 this 关键字,并且指定要扩展的类型。这个参数表示调用扩展方法时的实例对象。

2. 调用扩展方法

扩展方法的调用方式与实例方法相同。编译器会自动将调用转换为对静态方法的调用,并将实例对象作为第一个参数传递。

3. 注意事项

  • 扩展方法不能访问类的私有成员或受保护成员。
  • 如果扩展方法与实例方法同名,实例方法将优先被调用。
  • 扩展方法可以扩展接口,使得所有实现该接口的类型都可以使用该扩展方法。

4. 使用场景

扩展方法通常用于以下场景:

  • 向无法修改源代码的现有类型添加功能。
  • 为接口提供默认实现。
  • 简化代码,使代码更具可读性。

通过扩展方法,C# 提供了一种灵活的方式来增强现有类型的功能,而无需修改原始类型的代码。

纠错
反馈