Realmente semplice da replicare, l'output è bizzarro;Sovrascrittura dei parametri di default in C#
risultato atteso è "bbb bbb" uscita effettiva è "aaa bbb"
Chiunque ha ottenuto delle spiegazioni MSDN di questo comportamento? Non sono riuscito a trovarne.
((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() fornisce i risultati desiderati? – rhughes
Uscita prevista in base a * who *? – Jamiec
Credo che non sia valido modificare il valore predefinito di un parametro facoltativo mentre si ignora un metodo. Non cambia la firma del metodo? –