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

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

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

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

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

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

例如:

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. 

编辑:

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

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

扩展方法静态方法。 你不需要做任何事情。

区分扩展方法与任何其他静态方法的唯一之处在于,除了通常作为静态方法调用之外 ,它还可以被调用,就像它是一个实例方法一样。