The answer is pretty straightforward. Are you representing an entity in your business model? Use a class. Are you grouping a set of related values together that don't make any sense by themselves (e.g. coordinates, complex number) then use a struct. If you aren't sure then use a class.
What really matters is reference vs value types. Classes are ref types in C# and structs are value types. The runtime enforces the ref vs value type rules. You can read about them in the documentation you're reading.
Reference types (at least until you enable nullable reference types)
- Can be null so you must code for that
- Follow reference semantics for assignment (copy the reference so you can have multiple variables pointing to same object)
- Follow reference semantics for equality (2 values are equal only if they refer to same object in memory)
- Allocated in heap
- Can fully customize construction
Value types
- Can never be null
- Follow value semantics for assignment (copy value each time)
- Follow value semantics for equality (2 values are equal if they values they store are equal)
- Allocated on call stack
- Should be small (generally less than 64 bytes)
- Cannot have a default constructor
Note that rules around equality can be altered in advanced situations but that is not normal.
So, at the end of the day, if you need to store data and functionality then use a class. If you just need to store data then use a struct. If you're not sure then use a class.