|We need to clarify something here. Classes are what you write. They define the behavior of objects. Namely, the data they store and the functions that act on the data. |
Objects are created from classes. They're the ones that hold the data you care about (id, name, status, etc.), and they're acted on by the functions defined in the class. They can be created, copied, changed, destroyed, etc. Objects are the living, breathing parts of your program, and they literally put the "Object" in Object Oriented Programming.
Static methods and fields are parts of classes that do not require an object to do their job, but are bundled with their class because they're related in some way. System.String is rife with this. String.IsNullOrEmpty() is a nice example of a static method. It's obviously related to Strings, and it has a clear reason to be static. After all, you cannot call a normal method with a null object.
A static field is String.Empty. It's public, readonly, and returns an object being defined by the class, but it doesn't need to be any of these. It is, however, closely related to Strings and String operations; the aforementioned IsNullOrEmpty() couldn't do its job without String.Empty!
Static classes, therefore, are classes that contain only static members, and cannot create objects.
So what you really want is just a normal class, and you can just create new user object from that class. Once you're done with the object, you can remove it from whatever collection you're using to hold user objects, set its value to null, or just let it fall out of scope.
How To Ask Questions The Smart Way