您可以添加您调用的扩展方法,如静态方法吗?

Spi*_*ike 4 c# extension-methods

据微软称,"扩展方法是一种特殊的静态方法,但它们被称为扩展类型的实例方法".

有没有办法添加一个它调用的扩展方法,就好像它是一个静态方法?或者做一些具有相同效果的其他事情?

编辑:我的意思是"调用它就好像它是扩展类上的静态方法".抱歉模棱两可.

Ric*_*ich 13

据微软称,"扩展方法是一种特殊的静态方法,但它们被称为扩展类型的实例方法".

是的,扩展方法是静态方法.它们都可以作为静态方法以正常方式调用,作为它们"扩展"类型的扩展实例方法,甚至可以在空引用上作为扩展方法调用它们.

例如:

public static class Extensions {
    public static bool IsNullOrEmpty(this string theString) {
        return string.IsNullOrEmpty(theString);
    }
}

// Code elsewhere.
string test = null;
Console.WriteLine(test.IsNullOrEmpty()); // Valid code.
Console.WriteLine(Extensions.IsNullOrEmpty(test)); // Valid code.
Run Code Online (Sandbox Code Playgroud)

编辑:

有没有办法添加一个它调用的扩展方法,就好像它是一个静态方法?

你是说要调用,例如string.MyExtensionMethod()?在这种情况下,不,没有办法做到这一点.