Interesting note under the hood, enum refers to System.Enum, and all enum types derive from this. However, the usage is so specialized, the compiler will not allow you to derive from it directly.
A struct type passes by value instead of reference - like passing a non-pointer variable in C#. The nuances of when to use a struct or class is fairly complex if you don't understand pointers, but basically all value passes are copies, not references to thew original copy.
An enum is a class which contains nor more than a finite list of entries or flags, and has a few helper methods from the aformentioned System.Emum. This is most useful for things like
enum direction { Up, Down, Left, Right }
Otherwise, see Classes and Structs and Enumeration Types.