8
以字節爲單位的enum大小是多少?枚舉大小(以字節爲單位)
public enum MMTPCnxNckRsn
{
MMTPCnxNckRsnNoAnswer = -2,
MMTPCnxNckRsnSendError = -1,
MMTPCnxNckRsnOk = 0,
MMTPCnxNckRsnInvalidMember = 1,
MMTPCnxNckRsnHubNotReady = 2,
MMTPCnxNckRsnUnknownMember = 3,
MMTPCnxNckRsnLastCnxTooRecent = 4,
MMTPCnxNckRsnInvalidVersion = 5,
MMTPCnxNckRsnInvalidOptions = 6,
MMTPCnxNckRsnTooManyCnx = 7
};
我用下面的代碼來找到它,但我想是不是enough..It是一個字符串數組10 elements..Should餘數中的每個元素的字符,假設每字符1個字節並添加所有元素的字節?什麼是無符號數?
var size = Enum.GetNames(typeof(MMTPCnxNckRsn)).Length;
var arr = Enum.GetNames(typeof (MMTPCnxNckRsn));
我不知道,如果它一提的是,我在marshaling
本機Win32代碼到C#中間是很重要的,關鍵是要找到枚舉的大小在內存管理地址。
請問爲什麼您覺得需要知道枚舉值的大小?你遇到特定問題嗎?究竟是如何存儲枚舉(即不是作爲字符串或數組)的錯誤思考?當然你也可以的 –
@大衛赫弗南,非託管代碼中有一個結構(比如S1),S1有一些成員,包括工會(這個聯盟有一個枚舉類型成員),我用了'顯式佈局kind'用於編組s1(爲了更明確,避免進一步的內存管理問題!)..所以我想知道枚舉的大小以獲得聯合的大小,然後設置在s1中聯合之後的成員的偏移量(地址)。我用這篇文章http://www.codeproject.com/Articles/66243/Marshaling-with-C-Chapter-3-Marshaling-Compound-Ty ..真實世界的例子部分,第一個例子。 – Parid0kht
請勿使用明確的。讓編譯器佈置它。它會做對。只有在使用顯式的時候,纔是聯合中的FieldOffset(0)。我對你的其他問題的回答顯示瞭如何。 –