listas enlazadas y punteros

20/08/2004 - 20:28 por frankie | Informe spam
No se como implementar listas enlazadas en C#, tampoco sé
como usar los punteros, he buscado en la ayuda del visual
studio pero no me ayudan en nada (a lo mejor no utilizo la
ayuda adecuadamente), a ver si alguien me echa una mano,
gracias

Preguntas similare

Leer las respuestas

#1 faustino Dina
20/08/2004 - 21:51 | Informe spam
Pues el C# no usa punteros oficialmente, pero la verdad que no los necesitas
para implementar la lista enlazada. Imagina que estas usando referencias de
C++ y haz tu lista enlazada de manera similar a como la harías en C++

"frankie" wrote in message
news:2e8b01c486e3$8732fb60$
No se como implementar listas enlazadas en C#, tampoco sé
como usar los punteros, he buscado en la ayuda del visual
studio pero no me ayudan en nada (a lo mejor no utilizo la
ayuda adecuadamente), a ver si alguien me echa una mano,
gracias
Respuesta Responder a este mensaje
#2 edison martinez
21/08/2004 - 15:54 | Informe spam
En realidad C# si usa punteros, aqui un ejemplo:

public class Sample
{
unsafe public static void Swap(int* p1, int*p2)
{
int tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}

public static int Main(String[] args)
{
int i,j;
i=1;
j=2;
Console.WriteLine("Antes de Swap: i={0}, j={1},i,j);
unsafe{ Swap(&i, &j); }
Console.WriteLine("Despues de Swap: i={0} j={1},i,j)";
}
}

Pero los punteros pueden ser "peligrosos" asi que se los ejecuta comúnmente
como "Unsafe Code"
Edison Martínez García
MCP

"faustino Dina" wrote in message
news:
Pues el C# no usa punteros oficialmente, pero la verdad que no los


necesitas
para implementar la lista enlazada. Imagina que estas usando referencias


de
C++ y haz tu lista enlazada de manera similar a como la harías en C++

"frankie" wrote in message
news:2e8b01c486e3$8732fb60$
No se como implementar listas enlazadas en C#, tampoco sé
como usar los punteros, he buscado en la ayuda del visual
studio pero no me ayudan en nada (a lo mejor no utilizo la
ayuda adecuadamente), a ver si alguien me echa una mano,
gracias


Respuesta Responder a este mensaje
#3 Alfredo Novoa
21/08/2004 - 17:10 | Informe spam
On Fri, 20 Aug 2004 14:51:39 -0500, "faustino Dina"
wrote:

Pues el C# no usa punteros oficialmente, pero la verdad que no los necesitas
para implementar la lista enlazada. Imagina que estas usando referencias de
C++ y haz tu lista enlazada de manera similar a como la harías en C++



Las referencias a objetos no son otra cosa que punteros.

Saludos
Respuesta Responder a este mensaje
#4 Tomas Restrepo \(MVP\)
21/08/2004 - 22:58 | Informe spam
Alfredo,


>Pues el C# no usa punteros oficialmente, pero la verdad que no los


necesitas
>para implementar la lista enlazada. Imagina que estas usando referencias


de
>C++ y haz tu lista enlazada de manera similar a como la harías en C++

Las referencias a objetos no son otra cosa que punteros.



Si y no. Cierto, en el fondo son punteros, pero punteros algo mas
particulares: SU valor real puede cambiar en el tiempo, a medida que el GC
mueve los objetos que referencian en memoria durante la compactacion.

Esta es la razon por la que no es permitido tomar su valor, a menos que el
objeto que referencian haya sido "fijado" (pinned) en memoria para impedir
que el GC lo mueva.

Tomas Restrepo

Respuesta Responder a este mensaje
#5 Alfredo Novoa
22/08/2004 - 14:04 | Informe spam
On Sat, 21 Aug 2004 15:58:13 -0500, "Tomas Restrepo \(MVP\)"
wrote:


Si y no. Cierto, en el fondo son punteros, pero punteros algo mas
particulares



Los punteros algo más particulares siguen siendo punteros, obviamente.

: SU valor real puede cambiar en el tiempo, a medida que el GC
mueve los objetos que referencian en memoria durante la compactacion.



Un puntero es un valor, y un valor no cambia con el tiempo.

Una variable de tipo puntero contiene un puntero y puede cambiar con
el tiempo. Si el recolector de basura mueve los objetos (valores),
entonces también tiene que actualizar las variables de tipo puntero
con otros punteros. Esto también pasa con lenguajes no OO.

El mayor problema de la OO es que los conceptos básicos están muy mal
definidos y sustituyen a términos clásicos mucho más precisos como:
tipo, valor, variable, operador, operación, función, invocación,
puntero, etc. Utilizando los términos clásicos las cosas se ven mucho
más claras.

"Objeto" y "referencia a un objeto" pueden significar tanto valor como
variable, o incluso más cosas.

Aunque por lógica, una referencia debería de ser siempre un valor y
no una variable de tipo referencia. El problema es que en la OO no
existe ningún término para las variables de tipo referencia y por eso
también se les llama referencias creando confusión.


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