I've always used public methods and recently been advised by one of my friends to always avoid defining methods as public, as far as possible, though I have worked in any commercial company I have never "really" understood the concept of why public
methods are not "safe to use at times".
I have worked a lot with c# and please don't get me wrong I have used other access types such internal
, private
and protected
and I know how they "work" but never really understood why you should define methods with those access levels, especially in production.