扩展方法是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

结尾

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

Last modification:September 1, 2022
本文作者:
文章标题:C# 拓展方法
本文地址:https://www.ccrui.cn/archives/c-ta-zhan-fang-fa.html
版权说明:若无注明,本文皆个人的辣鸡小站原创,转载请保留文章出处。
如果觉得我的文章对你有用,请随意赞赏