He estado tratando de entender el uso de "primitivos" en Java y C# y la diferencia entre ellos (Si alguna). He hecho una serie de preguntas sobre SO y algunas de las respuestas parecen confundir el problema en lugar de aclararlo. Algunas respuestas (y algunos documentos de MS) parecen proporcionar declaraciones contradictorias. Desde SODefiniciones de "primitivo", "tipo de valor", "estructura", "clase", "ajuste" en Java y C#
y desde MS: http://msdn.microsoft.com/en-us/library/ms228360%28VS.80,lightweight%29.aspx - "las estructuras son muy similares a las clases" - "la clase Int32
envuelve el tipo de datos int
" - "En Por otro lado, todos los tipos de datos primitivos en C# son objetos en el espacio de nombres del sistema.Para cada tipo de datos, se proporciona un nombre corto o alias. Por ejemplo, int
es el nombre abreviado de System .Int32 ".
Mi confusión recae principalmente en C# (he programado java por algún tiempo).
EDITAR el siguiente apartado se ha confirmado que es correcta por @ Jon Skeet
- Java tiene dos tipos primitivos (y de clase). Las palabras "tipo de valor" podrían ser un sinónimo de primitivo (aunque no ampliamente utilizado) y "tipo de referencia" para la clase. Java "envuelve" primitivos (int) en las clases (entero) y estas clases tienen el poder completo de cualquier otra clase (puede ser nulo, utilizado en las colecciones, etc.)
EDITAR @ Jon ha dado una declaración muy clara sobre C# por lo que eliminaré mis verdades sugeridas y me referiré a su respuesta.
Pregunta adicional: ¿Existe un consenso sobre cuál debería ser el uso real de estos términos? Si hay un consenso, estaría muy agradecido por haberlo explicado explícitamente. De lo contrario, supongo que la terminología es confusa y, por lo tanto, de uso limitado.
RESUMEN Gracias por respuestas muy claras. Existe un consenso (ver respuesta aceptada de @Jon) entre aquellos que realmente entienden esto y los documentos de MS son consistentes (aunque se refieren a Java en algunos lugares y los he leído mal para C#)
@Jon editó la pregunta y eliminó el segundo punto, en su lugar, señaló su respuesta. –