Here's when I use it:
- Accessing Private Methods from within the class (to differentiate)
- Passing the current object to another method (or as a sender object, in case of an event)
- When creating extension methods :D
I don't use this for Private fields because I prefix private field variable names with an underscore (_).