O m_
prefixo é frequentemente usado para variáveis de membro - acho que sua principal vantagem é que ele ajuda a criar uma distinção clara entre uma propriedade pública e a variável de membro privado que a apoia:
int m_something
public int Something => this.m_something;
Pode ajudar a ter uma convenção de nomenclatura consistente para o backup de variáveis, e o m_
prefixo é uma maneira de fazer isso - que funciona em linguagens que não diferenciam maiúsculas de minúsculas.
A utilidade disso depende dos idiomas e das ferramentas que você está usando. Os IDEs modernos, com fortes ferramentas de refator e inteligência intelectual, têm menos necessidade de convenções como essa, e certamente não é a única maneira de fazer isso, mas vale a pena estar ciente da prática em qualquer caso.