以下为引用的内容:
namespace Hongjun.Guo
{
interface MyInterface
{
void Test01();
}
static class MyExtensionMethods
{
public static void MyTest002(this MyInterface ii)
{
ii.Test01();
}
}
public class MyClass : MyInterface
{
public void Test01()
{
Console.WriteLine("Test01");
}
public void MyTest002()
{
Console.WriteLine("MyTest002");
}
}
}
调用代码:
以下为引用的内容:
using Hongjun.Guo;
static void Main(string[] args)
{
MyInterface mm = new MyClass();
mm.MyTest002();
Console.WriteLine("***********");
((MyClass)mm).MyTest002();
Console.ReadLine();
}
这段代码执行的结果是
Test01
***********
MyTest002
分析:
mm.MyTest002(); 这行代码是接口调用,则使用的是扩展方法。
((MyClass)mm).MyTest002(); 这行代码调用者类型是MyClass ,MyClass 实现了MyTest002 函数,则不是扩展方法调用。