C# why sizeof is unsafe and how to get size of a struct in a safe way?

后端 未结 2 467
悲哀的现实
悲哀的现实 2021-01-05 14:28

I\'ve defined a struct to send via socket. I\'d like to get the size of it but sizeof is unsafe and the same for \"System.Runtime.InteropServices.MarshalS

2条回答
  •  死守一世寂寞
    2021-01-05 15:29

    See my blog post for a wrapper library that lets you determine what the JIT will define the managed type's size will be(at runtime). It works by using the sizeof IL instruction which isn't exposed at all in C#. It can be run with no special permissions at all and is verifiable.

    Note: this may or may not be what you actually want. This might return 8 for a structure that actually only has a single byte in it. I don't really understand your question completely, so I'm not sure if this is actually what you want or not.

提交回复
热议问题