When should you use struct and not class in C#?

I came across these rules here:

•a struct should represent a single value
•a struct should have a memory footprint less than 16 bytes
•a struct should not be changed after creation

Structs can be useful in serial communications and COM interaction.

I don’t feel you need to stick to those specific guidelines, it also depends on how you want to manage your memory.