Naprawdę proste do powielenia, wyjście jest dziwne;Zastępowanie domyślnych parametrów w C#
Oczekiwany wynik jest "bbb bbb" rzeczywistej produkcji jest "aaa bbb"
Czy ktoś ma jakieś MSDN wyjaśnienie tego zachowania? Nie mogłem znaleźć żadnego.
((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);
}
}
Czy ((a) (nowy b())). Test() daje oczekiwane rezultaty? – rhughes
Oczekiwany wynik zgodnie z * kto *? – Jamiec
Uważam, że nie można zmienić domyślnej wartości parametru opcjonalnego podczas przesłonięcia metody. Czy to nie zmienia sygnatury metody? –