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

No support in the CLI for the namespace concept

Vi sieti mai chiesti se i programmi vuoti (cioè da 0 bytes) compilano? Queste due righe nel VS .NET Command Prompt:

type foo.cs > foo.cs
csc /t:library foo.cs

producono un DLL da 3072 bytes. 

Forse per qualcuno sapere questo potrebbe sembrare una cosa di poco peso. Voglio però farvi notare che, se al posto del file vuoto compilate uno snippet che contiene un namespace vuoto:

namespace empty{}

risulterà un DLL della stessa dimensione di 3072 bytes. Se provate con ildasm a vedere il codice IL nei due casi, vedrete che sono identici

Cosa vuol dire questo? Ci dobbiamo semplicemente ricordare che il concetto di namespace è al livello del linguaggio e non scende al livello IL (vedi le specifiche CLI Partition II "While some programming languages introduce the concept of a namespace, there is no support in the CLI for this concept." capitolo 6). Quindi, un namespace vuoto è uguale a un codice vuoto.

La canzone del giorno: Franco Battiato - "Conforto alla vita" con versi come questi:

"Ah, quante volte un malefico vento ti colse
ma il soave profumo risaturò subito l'aria
"

Print | posted on martedì 5 ottobre 2004 02:44 | Filed Under [ Carillon .NET ]

Powered by:
Powered By Subtext Powered By ASP.NET