C#静态拓展方法的用法

最近想拓展网上下载来的动态链接库,因为下载来的动态链接库缺少一些功能不能满足我的需求,我要想出比较好的方法去拓展这个动态链接库,查找了一下,最好的方法就是使用这个静态拓展方法了,接下来给大家展示一下如何使用这个的,代码块如下:

using System;
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            
            CalPro calPro = new CalPro();
            Console.WriteLine("减法结果 =" + calPro.Subtract(2.8f, 1.2f));
            Console.WriteLine("加分结果 =" + calPro.Add(2.8f, 1.2f));
            Console.ReadLine();
        }
    }

    public class CalPro {
        public float Add(float a,float b)
        {
            return a + b;
        }
    }

    static class CalProExtension {
        public static float Subtract(this CalPro calPro,float a, float b)
        {
            return a - b;
        }
    }
}

C#静态拓展方法的用法_第1张图片

可以看到这里把CalPro这个类拓展出了减法,而且运行以后没问题,CalPro如果打成Dll只要引用一下命名空间拓展这个Dll写法是一样的,使用静态拓展方法的注意事项就是拓展出来的方法第一个参数不能是静态类,如图下:

C#静态拓展方法的用法_第2张图片

这个Math类是C#的集成计算数学的静态类所以拓展不了,直接报的错误也很清楚,之后可以使用这个静态拓展方法去尝试链式编程,如图下:

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {

            LinkPro linkPro = new LinkPro();
            linkPro.AddLink("第一步").AddLink("第二步")
                .AddLink("第三步").AddLink("第四步");
            Console.ReadLine();
        }
    }

    public class LinkPro {
        public string AddModel(string name)
        {
            return name;
        }
    }

    static class CalProExtension {
        public static LinkPro AddLink(this LinkPro linkPro,string name)
        {
            Console.WriteLine(name);
            return linkPro;
        }
    }
}

C#静态拓展方法的用法_第3张图片

就是调用的函数返回自身类的实例这样就可以一直调用。

你可能感兴趣的:(编程基础,静态拓展方法)