de MSDN: (http://msdn.microsoft.com/en-us/library/s1ax56ch%28VS.71%29.aspx)
Tipos de valor
Los tipos de valor consisten en dos categorías principales:
* Struct type
* Enumeration type
Los tipos struct contienen los tipos struct definidos por el usuario y la siguientes tipos simples incorporados:
* Numeric types
o Integral types
o Floating-point types
o decimal
* bool
Características principales de los tipos de valor
Una variable de un tipo de valor siempre contiene un valor de ese tipo. La asignación a una variable de un tipo de valor crea una copia del valor asignado, mientras que la asignación a una variable de un tipo de referencia crea una copia de la referencia pero no del objeto al que se hace referencia.
Todos los tipos de valores se derivan implícitamente de la clase Object.
A diferencia de los tipos de referencia, no es posible derivar un nuevo tipo de un tipo de valor. Sin embargo, al igual que los tipos de referencia, las estructuras pueden implementar interfaces.
A diferencia de los tipos de referencia, no es posible que un tipo de valor contenga el valor nulo.
Cada tipo de valor tiene un constructor predeterminado implícito que inicializa el valor predeterminado de ese tipo. Para obtener información sobre los valores predeterminados de los tipos de valores, consulte Tabla de valores predeterminados.
Características principales de tipos simples
Todos los tipos simples son alias de los tipos de sistema de .NET Framework. Por ejemplo, int es un alias de System.Int32. Para obtener una lista completa de alias, vea Tabla de tipos incorporados.
Las expresiones constantes, cuyos operandos son todas constantes de tipo simple, se evalúan en tiempo de compilación. Para obtener más información, consulte 7.15 Expresiones constantes.
Los tipos simples se pueden inicializar usando literales. Por ejemplo, 'A' es un literal del tipo char y 2001 es un literal del tipo int.
"Lo que hace un entero a tipo de valor "- CLR" sabe "sobre tipos de valores primitivos y los maneja especialmente, no es específico inherente al lenguaje (digamos C#) – Roman
Los tipos de valores no están necesariamente asignados en la pila. Considere un campo de tipo de valor en una clase: la instancia de esa clase estaría en el montón, y por lo tanto, sería el campo. De hecho, todo el asunto de la asignación es estrictamente un detalle de implementación: los tipos de valor tienen semántica de valores y ninguna identidad de objeto inherente (por lo que no '==', por ejemplo), y eso es todo. –
posible duplicado de [¿Todos los tipos en .net heredan de System.Object?] (Http://stackoverflow.com/questions/1316626/does-every-type-in-net-inherit-from-system-object) – nawfal