Web Log di Adrian Florea

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." Antoine de Saint-Exupery
posts - 440, comments - 2715, trackbacks - 3944

My Links

Archives

Post Categories

Image Galleries

.RO Blogs

.RO People

.RO Sites

Blogs

Furls

Links

vinCitori

Specifiche non troppo specifiche... :-)

Ieri per tutto il giorno vi ho parlato dell'articolo di Nicu G. Fruja in cui porta alla luce "a few gaps and mistakes in the C# reference manual, inconsistencies with different implementations of C#". Gli ho scritto chiedendogli dei commenti su "The reference of the static field B.x triggers only the initialization of A" e oggi mi ha risposto così (traduco dal rumeno):

Le specifiche affermano erroneamente che:

(17.11) "The execution of a static constructor is triggered by the first of the following events to occur within an application domain:

  • An instance of the class is created.
  • Any of the static members of the class are referenced."

Si può notare anche da questo esempio: il campo x è un campo della classe B, ma non dichiarato nella classe B, bensì nella classe A. In realtà, le specifiche dovrebbero dire così: l'accesso a un campo statico provoca l'inizializzazione della classe che l'ha dichiarato (nel nostro caso A).

Nicu ha ragione, perché secondo le specifiche x è un membro (anche) della classe B ma l'accesso a B.x non richiama il costruttore di tipo della classe B, bensì il costruttore di tipo della classe in cui x è stato dichiarato, cioè A.

Print | posted on martedì 10 agosto 2004 20:51 | Filed Under [ Carillon .NET Bugs? ]

Powered by:
Powered By Subtext Powered By ASP.NET