Normally when I have a private field inside a class or a struct, I use camelCasing, so it would be obvious that it's indeed private when you see the name of it, but in some of my colleagues' C# code, I see that they use m_ mostly or sometimes _, like there is some sort of convention.
Aren't .NET naming conventions prevent you from using underscores for member names?
And when you mention the MS naming conventions or what not, they tell you it's the best way, but don't explain the reasoning behind it.