根据微软的说法,“扩展方法是一种特殊的静态方法,但它们被称为扩展类型上的实例方法”。
有没有办法添加一个扩展方法,使其被称为静态方法呢?或者做些其他具有相同效果的事情?
编辑: 我的意思是“在扩展类上像静态方法一样调用”。 抱歉造成的歧义。
有没有办法添加一个扩展方法,使其被称为静态方法呢?或者做些其他具有相同效果的事情?
编辑: 我的意思是“在扩展类上像静态方法一样调用”。 抱歉造成的歧义。
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()吗?在这种情况下,不,没有办法做到这一点。
扩展方法是静态方法。你不需要做任何事情。
唯一区别扩展方法和其他静态方法的地方在于,它可以像实例方法一样被调用,除此之外,它也可以像普通的静态方法一样被调用。