As @John Kraft mentions, there is no "correct" answer. MattJ is the closest–you should always follow your company's style guidelines. When in Rome, and all that.
As for my personal opinion, since it's called for here, I vote that you drop m_
entirely.
I believe the best style is one where all members are PascalCased
, regardless of visibility (that means even private
members), and all arguments are camelCased
. I do not break this style.
I can understand the desire to prefix property backing store field; after all you must differentiate between the field and the property, right? I agree, you must. But use a post-fix.
Instead of m_MyProperty
(or even _MyProperty
, which I've seen and even promoted once upon a time), use MyPropertyValue
. It's easier to read and understand and -- more importantly -- it's close to your original property name in intellisense.
Ultimately, that's the reason I prefer a postfix. If I want to access MyPropertyValue
using intellisense you (typically) type "My <down-arrow> <tab>
", since by then you're close enough that only MyProperty
and MyPropertyValue
are on the list. If you want to access m_MyProperty
using intellisense, you'll have to type "m_My <tab>
".
It's about keystroke economy, in my opinion.