base.CssClass

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:

Print | posted @ mercoledì 19 settembre 2007 00:32

Comments have been closed on this topic.