De alguna manera oscura, una clase derivada que no agrega nuevas funcionalidades (aún) se comporta de forma diferente a su clase base. La clase derivada:¿Por qué esta clase derivada se comporta diferente de su clase base?
public class MyCheckButton : CheckButton
{
public MyCheckButton(string label) : base(label)
{
}
}
MyCheckButton hereda de un (GTK #, parte del proyecto Mono) CheckButton. Sin embargo, en el siguiente fragmento de código que se comportan de manera diferente:
var button1 = new CheckButton("_foo");
var button2 = new MyCheckButton("_foo");
// code omitted
El subrayado en la etiqueta se asegura de que la etiqueta consigue un mnemónico. Para button1 esto funciona en mi testcode: obtengo "foo" donde f está subrayado. Sin embargo, para button2 esto falla. Acabo de obtener "_foo" como una etiqueta en mi cuadro de diálogo.
¿Alguien puede explicar cómo la clase derivada en este ejemplo podría comportarse de manera diferente o hay algo mágico detrás de la pantalla que tal vez verifique el tipo de la clase real?
¿Es este código de MyCheckButton está todo presentado aquí ? – Tigran
¿Qué sucede si no agrega button1? Tal vez no le gustan dos 'f' mnemotécnicos? – dlev
Sí, este es todo el código. Hice el ejemplo lo más simple posible. Los dos mismos mnemotécnicos no son el problema. Lo he intentado. –