C#3.0引入了扩展方法的概念,能模拟为其他类创建实例方法。只需更改静态方法的签名,使第一个参数成为要扩展的类型,并在类型名称前附加this关键字。
要为现有的类型(尤其是那些你无法修改的类型)添加功能时使用。
使用扩展方法要求如下:
1.第一个参数是要扩展或者要操作的类型,称为“被扩展类型”;
2.为指定扩展方法,要在被扩展的类型名称前附加this修饰符;
3.为了将方法作为扩展方法来访问,要用using指令导入扩展类型的命名空间,或将扩展类型和调用代码放在同一命名空间。
注意:避免随便定义扩展方法,尤其是不要为自己无所有权的类型定义。
扩展方法要慎用。
例子:
public static class StringExtensions
{
// 定义一个扩展方法,用于检查字符串是否为空或null
public static bool IsNullOrEmpty(this string str)
{
return string.IsNullOrEmpty(str);
}
// 定义一个扩展方法,将字符串转换为大写并返回
public static string ToUpperCase(this string str)
{
if (string.IsNullOrEmpty(str))
return null;
return str.ToUpper();
}
}