ccruiの博客

ccruiの博客

C# 拓展方法

16
2022-09-01

扩展方法是C#3.0引入的新特性,使用它,可以在不修改某一类的代码的情况下,实现该类方法的扩展。

为一个类添加扩展方法,需要三个要素:

  1. 扩展方法所在的类为静态类

  2. 扩展方法本身要为静态方法

  3. 扩展方法的第一个参数要用关键字this,指向要扩展的类

定义

public static class Expand
{
    public static string ToMd5_32(this string str)
    {
        var md5 = System.Security.Cryptography.MD5.Create();
        var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
        var sb = new StringBuilder();
        foreach (var b in bs)
        {
            sb.Append(b.ToString("x2"));
        }
        return sb.ToString();
    }
    
}

这个方法是服务于string类型的,返回其md5的值

使用

调用方法也非常简单

string strTest = "Hello World!";

var md5Str = strTest.ToMd5_32();

Console.WriteLine(md5Str);

控制台输出:

ed076287532e86365e841e92bfc50d8c

结尾

这种灵活的方式,可以让我们的开发更便捷,但是不要滥用扩展方法,当扩展方法与类原始的方法重名时,原始方法的优先级高于扩展方法,并且对于系统类,不要随便添加扩展方法。