好像进去了。NETFramework 重写方法时,可选参数存在问题。以下代码的输出结果如下: “ bbb” “啊” 。但我期望的输出是: “ bbb” “ bbb” .有没有解决办法。我知道它可以通过方法重载来解决,但是想知道为什么会这样。此外,代码在 Mono 中运行良好。
class Program
{
class AAA
{
public virtual void MyMethod(string s = "aaa")
{
Console.WriteLine(s);
}
public virtual void MyMethod2()
{
MyMethod();
}
}
class BBB : AAA
{
public override void MyMethod(string s = "bbb")
{
base.MyMethod(s);
}
public override void MyMethod2()
{
MyMethod();
}
}
static void Main(string[] args)
{
BBB asd = new BBB();
asd.MyMethod();
asd.MyMethod2();
}
}