在方法上使用扩展方法

时间:2018-10-19 19:24:37

标签: c#

我想在一个方法上调用扩展方法,以使我的代码混乱而又轻巧。这可能吗?

namespace SandBox
{
    static class Extensions
    {
        public static void Test<T1, T2>(this Action<T1, T2> action, T1 p1, T2 p2)
        {
            Console.WriteLine("From extension");
            action(p1, p2);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Program temp = new Program();
            temp.MyMethod("hello", "world");
            Extensions.Test(temp.MyMethod, "Hello1", "world1");
            //temp.MyMethod.Test("Hello2", "world2");
            Action<string, string> myAction = (p1, p2) => temp.MyMethod(p1, p2);
            myAction.Test("Hello3", "World3");
        }

        public void MyMethod(string s1, string s2)
        {
            Console.WriteLine($"s1:{s1}, s2:{s2}");
        }
    }
}

为什么我不能使用以下语法调用扩展方法:[method]。[Extension]([param1],[param2]);?有什么办法可以做到这一点?

谢谢

0 个答案:

没有答案