Tamaño de una estructura

26/02/2004 - 01:19 por Aldo S. | Informe spam
Hola,

Cual es la mejor manera de saber el tamaño de una estructura ? Usando
Marshal.SizeOf() ? ejemplo:

public struct MyRectangle
{
public double Xmin;
public double Ymin;
public double Xmax;
public double Ymax;

public static int Size()
{
return Marshal.SizeOf(typeof(double)) * 4;
}
}

Hay estructuras en las que tengo tambien enumeraciones y estas muestran un
error con Marshal.SizeOf())

Como calculo el tamaño de la estructura en managed code ?

O simplemente basta con hacer algo como esto ?

public struct MyRectangle
{
public double Xmin;
public double Ymin;
public double Xmax;
public double Ymax;

public static int Size()
{
return 8 * 4;
}
}

Gracias
Alfonso Moreno
 

Leer las respuestas

#1 Aldo S.
26/02/2004 - 04:13 | Informe spam
Hola,

Gracias por la respuesta.

private enum SGEntityID : byte {Rectangle, Polyline, Polygon};

private struct MyRectangle
{
public double xmin;
public double ymin;
public double xmax;
public double ymax;
public SGEntityID EntityID;
}

Esto da error:

MessageBox.Show(Marshal.SizeOf(typeof(SGEntityID)).ToString());


Sin embargo, esto no da error:

MessageBox.Show(Marshal.SizeOf(typeof(MyRectangle)).ToString());

Pero, en este ultimo caso, el resultado es 40, no obstante la enumeracion
esta definida como byte. Tengo que definir algun atributo en la estructura o
algo asi ?

Saludos,
Aldo,



"Crosio, Pablo" wrote in message
news:uv4q0PB$

aldo

no entiendo porque te da el error, yo lo haria asi:


public struct MyRectangle
{
public double Xmin;
public double Ymin;
public double Xmax;
public double Ymax;

public static int Size()
{
return Marshal.SizeOf(typeof(MyRectangle));
}
}

salu2!!

pablo

"Aldo S." wrote in message
news:uY6ve4$#
> Hola,
>
> Cual es la mejor manera de saber el tamaño de una estructura ? Usando
> Marshal.SizeOf() ? ejemplo:
>
> public struct MyRectangle
> {
> public double Xmin;
> public double Ymin;
> public double Xmax;
> public double Ymax;
>
> public static int Size()
> {
> return Marshal.SizeOf(typeof(double)) * 4;
> }
> }
>
> Hay estructuras en las que tengo tambien enumeraciones y estas muestran


un
> error con Marshal.SizeOf())
>
> Como calculo el tamaño de la estructura en managed code ?
>
> O simplemente basta con hacer algo como esto ?
>
> public struct MyRectangle
> {
> public double Xmin;
> public double Ymin;
> public double Xmax;
> public double Ymax;
>
> public static int Size()
> {
> return 8 * 4;
> }
> }
>
> Gracias
> Alfonso Moreno
>
>
>
>


Preguntas similares