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

a class = not a value type or interface?

Nella documentazione della proprietà IsClass della classe System.Type, c'è scritto:
"Gets a value indicating whether the Type is a class; that is, not a value type or interface"
E' vero che gli insiemi {ValueType}, {Interface} e {Class} sono disgiunti però esiste un tipo t che non fa parte né dal {ValueType}, né dall'{Interface}, né dal {Class}, cioè l'espressione !t.IsClass && !t.IsValueType && !t.IsInterface è true. Questo tipo è System.Enum di cui ho parlato in un altro post, sempre oggi.

Vediamo come si potrebbe correggere la definizione. Innanzitutto, cos'è un tipo?
"type declarations: class types, interface types, array types, value types, and enumeration types"
In questo caso gli array non ci interessano mentre l'insieme {Enumeration} è incluso nell'insieme {ValueType} - attenzione qui: System.Enum non fa parte dall'{Enumeration}. Vedete come l'errore si propaga? Dovevano forse dire:
type declarations: class types, interface types, array types, value types, and enumeration types the type  System.Enum.
e poi:
Gets a value indicating whether the Type is a class; that is, not a value type or interface or System.Enum

Lo so che suona stranissimo... Tutto il casino è nato dal fatto che System.Enum (un reference type!) deriva ("is-a-kind-of") da System.ValueType

Print | posted on lunedì 17 maggio 2004 01:39 | Filed Under [ Carillon .NET ]

Powered by:
Powered By Subtext Powered By ASP.NET