Это
Венгерская нотация.
Раньше использовалось, чтобы различать переменные и члены класса, по типам и т.д., т.к. не было удобных IDE, которые все подчеркивают.
Сейчас это осталось но не в том виде как раньше. Сейчас, если и используют, то _ и m_ - это просто пометка, что это часть класса, поле. Просто для удобства, чтобы различать.
Например, в этом случае все однозначно
class Sample
{
private int _value;
public Sample(int value)
{
_value = value;
}
}
А в этом нет (даже компилятор может ошибиться
class Sample
{
private int value;
public Sample(int value)
{
/* надо this.value = value */
value = value;
}
}