4

私はインターフェースを持っています:

public interface: IA { ... }

そして私はそれを拡張しようとします

class public A : IA {
    private static void foo(this IA a) {
        a.foo();
    }
}

しかし、コンパイラは、タイプ IA の最初のパラメーターを持つ foo() を見つけることができないと言います。どうすれば修正できますか?

4

1 に答える 1

9

拡張クラスも静的としてマークしましたか? つまり、拡張メソッドを持つクラスは静的としてマークする必要があり、かつ拡張メソッド自体も静的である必要があります。

 public static class AExtensions : IA 
 {
     public static void foo(this IA a) { a.foo(); } 
 } 
于 2012-06-14T01:46:26.680 に答える