Подчеркивать приватные переменные нужно всегда? Или в какие-то определенные моменты?
Это регулируется стилем написаня кода в вашей компании.
Обычно _ ставят перед приватными полями(!) класса. Не переменными, привыкай к правильной терминологии. Делают это для того чтобы в методах было удобнее отличать поля класса от локальных переменных. 

Но имей ввиду, как сказали выше, что в разных компаниях/командах правила именования могут отличаться. 

Сам Microsoft предлагает следующие правила.