Start here. This is the direct spoken answer to practice first.
Why this question matters
A static member belongs to the type rather than one object instance. It fits constants, pure helpers, and behavior that needs no instance state or replaceable dependency; mutable static state is global state inside the process.
I use static members for type-wide behavior that needs no instance identity, mutable state, or replaceable dependency. Math-like functions and immutable shared metadata are reasonable examples. Customer-specific balance or request context belongs on an instance. A mutable static dictionary is shared by every request in that process, needs synchronization, survives between tests, and disappears on restart. It also differs per replica, so it cannot represent globally authoritative state.