На самом деле просто для репликации, выход причудливый;Переопределение параметров по умолчанию в C#
Ожидаемый результат "БББ" БББ Фактический выход является "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);
}
}
Есть ли ((a) (новый b())). Test() дает результаты, которые вы хотите? – rhughes
Ожидаемый выпуск в зависимости * кто *? – Jamiec
Я считаю, что неверно изменять значение по умолчанию для необязательного параметра при переопределении метода. Не меняет ли подпись метода? –