Bootstrap

C# 扩展方法 详解

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();
    }
}