Heim > Backend-Entwicklung > C++ > Wie kann ich die Größe einer Objektinstanz in Bytes in C# bestimmen?

Wie kann ich die Größe einer Objektinstanz in Bytes in C# bestimmen?

Susan Sarandon
Freigeben: 2025-01-10 16:11:42
Original
799 Leute haben es durchsucht

How Can I Determine the Size of an Object Instance in Bytes in C#?

Objektgröße (in Bytes) in C# abrufen

Wie bestimme ich die Größe (in Bytes) einer beliebigen Objektinstanz in C#? Dies ist besonders nützlich, wenn Sie die Gesamtgröße verschiedener Objektsammlungen bestimmen müssen.

Objektgröße ermitteln

Um die Größe einer Instanz zu erhalten, können Sie eine Reihe undokumentierter Tricks anwenden. Beachten Sie, dass es nicht garantiert ist, dass diese Methoden immer funktionieren, und dass sie sich in zukünftigen .NET-Updates ändern können.

TypeHandle verwenden

Sie können die interne Struktur von TypeHandle verwenden, um auf das Feld „Basisinstanzgröße“ eines Typs zuzugreifen. So geht's:

<code class="language-csharp">object obj = new List<int>(); // 使用您需要的对象替换
RuntimeTypeHandle th = obj.GetType().TypeHandle;
int size = *(*(int**)&th + 1);
Console.WriteLine(size);</code>
Nach dem Login kopieren

Diese Methode stellt eine Basisinstanzgröße für die gängigsten Typen bereit. Allerdings erfordern Arrays, Strings und StringBuilder zusätzliche Berechnungen, um die darin enthaltenen Elemente zu berücksichtigen.

Überlegungen zur Erweiterungsmethode

Obwohl es keine bekannten Erweiterungsmethoden gibt, um die Objektgröße in Bytes explizit zu bestimmen, können Sie bei Bedarf selbst eine entwickeln.

Das obige ist der detaillierte Inhalt vonWie kann ich die Größe einer Objektinstanz in Bytes in C# bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage