Oggi mi è capitata una cosa singolare.
Create una classe che eredita da TextBox (diciamo la classe A) e nel costruttore (che ha : base() ) assegnate a una stringa base.CssClass (es.: string a = base.CssClass;).
Poi create una classe B che eredita da A e nel costruttore (che ha : base() ) assegnate un'altra stringa a CssClass (es. base.CssClass = "xxx"; ).
Lanciate l'applicazione e in debug analizziamo cosa succede. I due costruttori vengono richiamati nell'ordine corretto (prima A poi B) ma analizzando il contenuto di base.CssClass nel costruttore di A figura già l'assegnamento della stringa che avverrà solo in B. In effetti poi l'assegnamento non avviene con il valore passato in B.
Magia!!!
L'unica spiegazione è che l'intellisense si sbagli: in realtà il valore contenuto è quello giusto ma l'intellisense ha già "eseguito" il codice di B.
Technorati tags:
.NET