Estruturas de c++ a c#

20/06/2007 - 11:34 por Iker Llanos | Informe spam
Tengo estas dos estructuras en c++.

typedef struct
{
int tipo;
int subTipo;
int accion;
char nombre[30];
int codigo;
int accionT;
int nivel;
} estructura1

typedef struct
{
int version;
void * analisis;
int max;
int num;
estructura1 *estr1;
} estructura2

Quiero pasarlas a C#. ¿Cómo debería definirlas (tipos de datos etc)?

Gracias

Preguntas similare

Leer las respuestas

#1 RFOG
20/06/2007 - 12:53 | Informe spam
Iguales pero...

En Wed, 20 Jun 2007 11:34:03 +0200, Iker Llanos
escribió:

Tengo estas dos estructuras en c++.

typedef struct
{
int tipo;
int subTipo;
int accion;
char nombre[30];



Depende. Si quieres una cadena .NET,

string nombre

Si quieres que sea mimética con la estructura de C++,

no hay equivalente en C#, es decir, al final la estructura no tendrá el
mismo tamaño, pero en todo caso,

byte[] nombre=new byte[30];

int codigo;
int accionT;
int nivel;
} estructura1

typedef struct
{
int version;
void * analisis;



Eso no existe en C# (que yo sepa). Tiene el equivalente a IntPtr, pero no
es lo mismo.

Además, un puntero del tipo void* en C++ indica un diseño muy deficiente
(aunque no en C).

int max;
int num;
estructura1 *estr1;



Lo mismo que con el void*, es un IntPtr que tendrás que moldear mediante
interop

} estructura2

Quiero pasarlas a C#. ¿Cómo debería definirlas (tipos de datos etc)?

Gracias





Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
La suerte favorece sólo a la mente preparada.
Respuesta Responder a este mensaje
#2 Alberto Poblacion
20/06/2007 - 12:56 | Informe spam
"Iker Llanos" wrote in message
news:
Tengo estas dos estructuras en c++.

typedef struct
{
int tipo;
int subTipo;
int accion;
char nombre[30];
int codigo;
int accionT;
int nivel;
} estructura1

typedef struct
{
int version;
void * analisis;
int max;
int num;
estructura1 *estr1;
} estructura2

Quiero pasarlas a C#. ¿Cómo debería definirlas (tipos de datos etc)?



struct estructura1
{
int tipo;
int subTipo;
int accion;
char nombre[30];
int codigo;
int accionT;
int nivel;
}

struct estructura2
{
int version;
object analisis;
int max;
int num;
estructura1 estr1;
}

Observa que han desaparecido los punteros; estamos almacenando la
estructura2 dentro de la 1. Si no lo quieres asi, usa una clase para la
estructura1, y entonces la 2 almacenará automáticamente una referencia a la
misma. El "void *", que es "un puntero a cualquier cosa", lo hemos
sustituido por una referencia a un object, que es lo más parecido en C#.
Otra diferencia más respecto a C++ es que el "char nombre[30]" en C# es
Unicode (16 bits por carácter), mientras que el C tradicional suele usar
char de 8 bits.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida