public class MyClass
{
int i = 0;
string str = "here";
MyStruct mystruct;
B b;
ArrayList myList = new ArrayList(10);
public MyClass()
{
}
....
}
public struct MyStruct
{
public int i;
public float f;
}
public class B
{
...
}
Desea conocer cómo se crea una instancia de una clase en segundo plano. Cuando se evalúa esta afirmación¿Cómo crea C# una instancia de una clase?
MyClass myClass = new MyClass();
. ¿Qué pasará en el backgroud? Mis siguientes declaraciones son correctas o no (para una máquina con sistema operativo de 32 bits)
- Se creará un espacio de memoria y se hará referencia a él como
myClass
; - dentro del espacio de memoria anterior, 4 bytes se utiliza para el valor de
int i
; - dentro del espacio de memoria anterior, 4 bytes se utiliza para la referencia de
string str
; el valor real destr
se almacena en otra ubicación (¿dónde?) - dentro del espacio de memoria anterior, 8 bytes se usa para el valor de
MyStruct mystruct
(porque MyStruct tiene 8 bytes); - dentro del espacio de memoria superior, 4 bytes se utiliza para la referencia del objeto
B b
; la memoria para el objeto b se asignará en otro lugar cuando se instancia; - dentro del espacio de memoria anterior, 4 bytes se utiliza para la referencia de
ArrayList myList
; el espacio de memoria real paraArrayList myList
se asigna en otro lugar y se hace referencia aquí comomyList
; - otros 4 u 8 bytes desde el espacio de memoria anterior se utilizan para metadatos de objeto;
- ...;