Nie jestem do końca pewien, co jest uzasadnieniem tej konwencji. Osobiście nie obchodzi mnie użycie jakiegokolwiek rodzaju prefiksu nazwy zmiennej do oznaczania zakresu zmiennej, ani nie zwracam szczególnej uwagi na użycie podkreśleń w nazewnictwie czegokolwiek. Co jest złego w używaniu słowa kluczowego "this" i przyjęciu konwencji nazw o niższych nazwach wielbłądów dla prywatnych instancji/zmiennych członkowskich?
public void IncrementFoo()
{
this.foo += 1;
}
To tylko 5 dodatkowych znaków do wpisania, ale jest bardzo jednoznaczne. Jeśli przyjęto niższą konwencję wielbłądów dla prywatnych zmiennych instancji, oznacza to od razu, że uzyskujesz dostęp do prywatnej instancji/zmiennej członkowskiej, i nie trzeba było używać przedrostka dowolnego do oznaczenia go .
+1 także dla mnie, głównym pomysłem jest filtrowanie zmiennych. – Lazer
Robiłem to na długo przed intellisense, aby odróżnić zmienne członkowskie. Było to kontynuacją C++ dni i MS przy użyciu m_ dla zmiennych członkowskich –
Jeśli nie możesz określić, czy zmienna jest lokalna, czy nie w ciągu kilku sekund od spojrzenia na metodę, czy nie można argumentować, że twoja metoda mogła być zbyt skomplikowanym? Co do filtrowania IntelliSense, czy pisanie kodu dostosowanego do konkretnej cechy IDE jest naprawdę dobrym pomysłem? –