Code conventions: Underscore on private fields
Why would you put underscore on private fields in a class?
- Because it is easier to determine in a method if the variable being used is a private field or not.
Why would you not put underscore on private fields in a class?
Because you already state in the declaration of the field that it is private. The underscore is duplicating that purpose. It would be the same (in a horrifying and extreme kind of way) as
private static MySingleton privateStaticFieldInstance;
There already is a solution to the problem. If you put this-keyword when you use a private field, it will become just as clear as the underscore. This is a built in language feature and should be used before any made up convention.
Using this is also much better out of readability. One does not have to learn the convention of underscore. This is a part of C# and therefor well documented for the reader to look up.
Now, let's dance!