鉴于:
interface IFoo
{
void Print(string text = "abc");
}
class Bar : IFoo
{
public void Print(string text = "def")
{
Console.WriteLine(text);
}
}
class Program
{
static void Main(string[] args)
{
Bar b = new Bar();
b.Print();
IFoo f = b as IFoo;
f.Print();
}
}
输出是:
def
abc
只有我还是这有点奇怪?最初我在这两种情况下都期待“def”。但是,如果是这种情况,那么可选参数抽象方法将毫无用处。但对于讨厌的错误来说,这似乎仍然是一个很好的起点。