Was ist die Größe von unter enum in Bytes?
%Vor%Ich habe den Code unten verwendet, um es zu finden, aber ich denke, es ist nicht genug..Es ist ein String-Array mit 10 Elementen..Sollte ich die Zeichen in jedem Element zählen, nehmen Sie jedes Zeichen 1 Byte und fügen Sie alle Bytes von Elementen? was ist mit vorzeichenlosen Zahlen ???
%Vor% Ich bin mir nicht sicher, ob es wichtig ist zu erwähnen, dass ich in der Mitte von marshaling
einen nativen Win32-Code zu c # habe, und es ist GRÜN, die Größe der Enumeration für die Verwaltung von Adressen im Speicher zu finden. p>
Die Dokumentation lautet:
Der Standardtyp der Aufzählungselemente ist int.
Daher hat Ihr Datentyp die Größe von 4 Bytes, was der Größe eines int entspricht.
Sie können dies mit dem folgenden Befehl bestätigen:
Während Sie unter Verwendung eines Namens auf die Enum-Werte im Quelltext verweisen, werden diese im Code dargestellt, der auf dem Computer als Integer-Werte ausgeführt wird. Ihr Kommentar zu String-Arrays ist ziemlich weit gefasst.
Ich denke auch, dass Sie das Thema Größe überdenken. Wenn Sie Ihre andere letzte Frage betrachten, scheinen Sie eine C ++ - Struktur in C # für pinvoke zu übersetzen. Nun, das C # -Enum wird direkt auf die C ++ - Enumeration abgebildet. Der Pinvoke Marshaller kümmert sich um die Größen und legt sie für Sie bereit. Sie müssen das nicht explizit behandeln.