I'm trying to understand static methods and I've reached a confusing point.
Focusing only on methods for this question, if I create an instance of my object (where the class itself is not static) then I typically only have access to the public, protected and or internal methods (depending on scope/encapsulation). In other word, I don't have access to private methods.
I've read that, although minimal, static methods are slightly more efficient than non-static methods.
So, when creating a private method with a return type of void, and excluding when you're creating a reference of an object from within itself, why would you ever not make it static? All the code I've ever seen doesn't do this, so I can only assume I've missed the point.