Wie groß ist eine Objektreferenz in .NET? Unterscheidet es sich zwischen x86-, x64- und / oder AnyCPU-Kompilierung?
Wenn es einen Unterschied macht, bin ich persönlich an C # interessiert.
Wie groß ist eine Objektreferenz in .NET? Unterscheidet es sich zwischen x86-, x64- und / oder AnyCPU-Kompilierung?
Wenn es einen Unterschied macht, bin ich persönlich an C # interessiert.
Antworten:
Die Referenz selbst ist im Grunde ein Zeiger. 32 Bit unter einem 32-Bit-Betriebssystem, 64 Bit unter einem 64-Bit-Betriebssystem.
Die Größe des Objekts, auf das verwiesen wird, ist komplizierter.
Zum Bestimmen der Zeigergröße können Sie System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr))
oder sizeof(IntPtr)
in einem unsicheren Kontext verwenden.
Bearbeiten:
Oder IntPtr.Size
.
Eine Objektreferenz ist im Grunde ein Zeiger auf den Speicher, der die Attribute des Objekts enthält. Als solche ist die Referenz ein Prozessorwort lang - 32 Bit auf 32-Bit-Plattformen und 64 Bit auf x64.