Tipos Nulos

22/11/2004 - 23:31 por Chino | Informe spam
Buenas!

Estoy comenzando con el .NET y vengo de Java. Con éste están los tipos
primitivos como long, int, double, boolean... y a parte su homólogo en
clases: Long, Integer, Double, Boolean...

¿Esto no lo hay en .NET? Sólo he visto tipos primitivos y no objetos.

Lo mismo me pasa con el tipo DateTime, quiero que una fecha pueda ser nula y
no me deja.

En especial estoy con C#, no sé si pasará con el resto de lenguajes .NET.

Muchas gracias,

Chino

Preguntas similare

Leer las respuestas

#1 Anonimo
23/11/2004 - 08:59 | Informe spam
En .NET todo es un objeto

int en realidad representa a una clase la clase int
string también y así con todas...

en programacion.com viene un b uen tutorial sobre el tema


Buenas!

Estoy comenzando con el .NET y vengo de Java. Con éste


están los tipos
primitivos como long, int, double, boolean... y a parte


su homólogo en
clases: Long, Integer, Double, Boolean...

¿Esto no lo hay en .NET? Sólo he visto tipos primitivos


y no objetos.

Lo mismo me pasa con el tipo DateTime, quiero que una


fecha pueda ser nula y
no me deja.

En especial estoy con C#, no sé si pasará con el resto


de lenguajes .NET.

Muchas gracias,

Chino



.

Respuesta Responder a este mensaje
#2 Xavi
23/11/2004 - 12:34 | Informe spam
Hola.

Estoy comenzando con el .NET y vengo de Java. Con éste están los tipos
primitivos como long, int, double, boolean... y a parte su homólogo en
clases: Long, Integer, Double, Boolean...

¿Esto no lo hay en .NET? Sólo he visto tipos primitivos y no objetos.
Lo mismo me pasa con el tipo DateTime, quiero que una fecha pueda ser nula


y
no me deja.



En efecto. No hay objetos en .NET que representen estos tipos numéricos o de
fechas. En .NET están representados por estructuras, y son lo que se llaman
tipos de valor, y no pueden valer nulo; cada tipo tiene definido un valor
por defecto.

En especial estoy con C#, no sé si pasará con el resto de lenguajes .NET.


Sí, es independiente del lenguaje.

Saludos,
Xavi.
Respuesta Responder a este mensaje
#3 alfredo
23/11/2004 - 13:34 | Informe spam
On Mon, 22 Nov 2004 23:31:49 +0100, "Chino" wrote:

Buenas!

Estoy comenzando con el .NET y vengo de Java. Con éste están los tipos
primitivos como long, int, double, boolean... y a parte su homólogo en
clases: Long, Integer, Double, Boolean...

¿Esto no lo hay en .NET? Sólo he visto tipos primitivos y no objetos.



En .NET hay tipos valor y tipos referencia (puntero), y no existen
tipos primitivos referencia como Long, Integer, Boolean, etc.

En Java se les suele llamar clases a los tipos referencia, en .NET
tipo y clase suelen ser sinónimos.

En general, cada uno usa la palabra "clase" como le da la gana.

Lo mismo me pasa con el tipo DateTime, quiero que una fecha pueda ser nula y
no me deja.



Lo que puede ser nulo es un puntero.

Por ejemplo:

object o = new DateTime();

"o" es un puntero que apunta a una variable de tipo DateTime.

Si haces:

o = null;

Aquí ya tienes una "fecha nula"

if (o != null)
{
Debug.Assert(o is DateTime);
System.Console.WriteLine(((DateTime)o).ToLongDateString());
}

En .NET hay un mecanismo automático que permite asignar variables de
tipo valor a variables de tipo referencia y viceversa. Se llama
boxing/unboxing.

Puedes buscar "boxing conversion" en la ayuda.

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003...sionPG.htm

En especial estoy con C#, no sé si pasará con el resto de lenguajes .NET.



El sistema de tipos es el mismo para todos los lenguajes.


Saludos
Respuesta Responder a este mensaje
#4 Enrique
23/11/2004 - 14:59 | Informe spam
Hola, a parte de todo lo que te han contestado un pequeño apunte.

Ya hay una versión beta (no sé si ya es definitiva) de C# v2. En esta
entre otras cosas existen los tipos nulos. Y se escriben con ? O sea, para
un int:

int? n;

n = null;
if (n == null) ...

Para todos los efectos es igual q si lo hubieras definido como int, salvo
q puede ser nulo. Esto es válido para todos los tipos 'basicos', o sea byte,
char, short ...

"Chino" wrote:

Buenas!

Estoy comenzando con el .NET y vengo de Java. Con éste están los tipos
primitivos como long, int, double, boolean... y a parte su homólogo en
clases: Long, Integer, Double, Boolean...

¿Esto no lo hay en .NET? Sólo he visto tipos primitivos y no objetos.

Lo mismo me pasa con el tipo DateTime, quiero que una fecha pueda ser nula y
no me deja.

En especial estoy con C#, no sé si pasará con el resto de lenguajes .NET.

Muchas gracias,

Chino




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida