C#编译器找不到接口扩展方法?

Mic*_*ael 4 c#

我有一个界面:

public interface: IA { ... }
Run Code Online (Sandbox Code Playgroud)

我试着把它扩展到

class public A : IA {
    private static void foo(this IA a) {
        a.foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

但编译器说,它找不到foo(),第一个参数是IA类型.我该如何解决?

Bla*_*Spy 9

您是否将扩展类标记为静态?即具有扩展方法的类必须标记为静态,扩展方法本身也必须是静态的.

 public static class AExtensions : IA 
 {
     public static void foo(this IA a) { a.foo(); } 
 } 
Run Code Online (Sandbox Code Playgroud)