El m_
prefijo se usa a menudo para las variables miembro; creo que su principal ventaja es que ayuda a crear una distinción clara entre una propiedad pública y la variable miembro privada que la respalda:
int m_something
public int Something => this.m_something;
Puede ser útil tener una convención de nomenclatura coherente para las variables de respaldo, y el m_
prefijo es una forma de hacerlo, una que funciona en lenguajes que no distinguen entre mayúsculas y minúsculas.
La utilidad de esto depende de los idiomas y las herramientas que esté utilizando. Los IDE modernos con herramientas de refactorización e intellisense fuertes tienen menos necesidad de convenciones como esta, y ciertamente no es la única forma de hacerlo, pero vale la pena estar al tanto de la práctica en cualquier caso.