非常に簡単に複製すると、出力は奇妙です。C#のデフォルトパラメータをオーバーライド
の予想される出力は
は誰を持って「BBB BBB」 実際の出力である「AAA BBB」であるこの動作のいずれかのMSDNの説明を得ましたか。私は何も見つけることができませんでした。
((a)new b()).test();
new b().test();
public class a
{
public virtual void test(string bob = "aaa ")
{
throw new NotImplementedException();
}
}
public class b : a
{
public override void test(string bob = "bbb ")
{
HttpContext.Current.Response.Write(bob);
}
}
Does((a)(new b()))test()あなたが望む結果を与えるか? – rhughes
* who *? – Jamiec
メソッドをオーバーライドしている間は、省略可能なパラメータのデフォルト値を変更することはできません。メソッドシグネチャを変更しないのですか? –