在C中,扩展方法是一种特殊的静态方法,它允许你向现有类型添加新方法,而无需修改该类型的源代码。扩展方法使用 `public static class` 定义,并以 `public static` 修饰符声明方法。扩展方法的第一个参数总是要扩展的类型,通常使用 `this` 关键字表示。
下面是一个简单的例子,展示了如何给 `string` 类型添加一个 `ToPascal` 方法,该方法将字符串的首字母大写,其余字母小写:
```csharp
public static class StringExtensions
{
public static string ToPascal(this string s)
{
return s.Substring(0, 1).ToUpper() + s.Substring(1).ToLower();
}
public static string ToPascal(this string s, int len)
{
return s.Substring(0, 1).ToUpper() + s.Substring(1, len).ToLower();
}
}
```
使用扩展方法时,你可以像调用普通方法一样调用它:
```csharp
string a = "dsfdsafsdfdsfasdf";
a.ToPascal(); // 将首字母大写,其余字母小写
a.ToPascal(2); // 将首两个字母大写,其余字母小写
```
请注意,扩展方法必须在同一个程序集中定义,并且它们不能访问要扩展的类型的私有成员。