私は、オプションのパラメータで遊んでいて、次のシナリオの間に来ました。インターフェイスメソッドにパラメータがない場合、すべてのオプションパラメータを含むメソッドが実装で認識されないのはなぜですか?
私は私のクラスにメソッドを持っている場合は、すべてのパラメータがオプションであるところ、私は次のコードを書くことができます:私は、その後のようなインターフェイスを作成する場合は
public class Test
{
public int A(int foo = 7, int bar = 6)
{
return foo*bar;
}
}
public class TestRunner
{
public void B()
{
Test test = new Test();
Console.WriteLine(test.A()); // this recognises I can call A() with no parameters
}
}
を:
public interface IAInterface
{
int A();
}
もし私がテストクラスがこのインタフェースを実装するようにしてから、IAInterfaceのインタフェースメンバA()が実装されていないとコンパイルしません。インタフェースの実装が、すべてのオプションのパラメータを持つメソッドであると解決されないのはなぜですか?
+1リンクありがとうございました! –
よろしくお願いします! EricはC#コンパイラチームのメンバーの一人であり、彼は興味深い情報をたくさん投稿しています(彼のブログだけでなく、実際にここにもあります)。 – Lucero