I'm not really sure what the rationale is behind this convention. Personally, I do not care for the use of any kind of variable name prefix for denoting the scope of a variable, nor do I particularly care for the use of underscores in naming anything. What's so bad about using the "this" keyword and adopting a convention of lower camel-cased names for private instance/member variables?
public void IncrementFoo()
{
this.foo += 1;
}
It's only 5 additional characters to type, but it's very explicit. If you've adopted the lower camel-cased convention for your private instance variables, then this tells you right away that you're accessing a private instance/member variable, and you didn't need to use any kind of prefix to denote it.