Zobacz wyniki ankiety na temat zarobków programistów w Polsce. Czytaj więcej..
0

Witam. Przeczytałem pewien artykuł i tam w programie, w którym używano referencji niektóre zmienne były nazywane w sposób: _nazwaZmiennej. Po co używa się tego "_" przed nazwą i w jakim wypadku? Podejrzewam, że jest to tylko umowne, ale nie wiem kiedy się tego używa, bo do niczego mi nie pasuje ;/

flag

2 Answers

5

Najczęściej znak "_" przed nazwą zmiennej stosuje się po to, aby zaznaczyć, że jest to zmienna prywatna.

Np:

 public class Something
    {
       private int _count;
       public int Count
       { 
          get{ return _count; }
       }
    }

Obecnie rzadko stosowana, "w dobie" auto-implemented properties, czyli np:

  public class Something
    {
       public int Count { get;private set; }
    }
link|flag
Na pewno az tak rzadko? Osobiscie ciagle uzywam pol prywatnych i nie widze potrzeby zbednego generowania propert. Czy to znaczy, ze pisze "przestarzaly" kod? :) – Karol Sotomski Feb 7 at 21:27
A kto napisał, że jakiś kod jest przestarzały? Bo w swojej wypowiedzi nic takiego nie widzę ;) Moim zdaniem każdy kod jest dobr, jeśli jest niezawodny i służy przeznaczonemy mu celowi ;) – andrzejp Feb 7 at 22:08
0

Ja bym powiedział raczej, że szkół jest wiele (tyle co standardów kodowania - niemały rozłam powstał ostatnio z PHP, w którym owe podkreślenia stały się problematyczne). Osobiście stosuję w firmie podkreślenia przed nazwami zmiennych, które...przekazywane są jako parametry funkcji.

Mimo wszystko najczęściej jest to przykład stosowania tzw. notacji węgierskiej: http://pl.wikipedia.org/wiki/Notacja_węgierska

...w szczególności można przeczytać, że:

*"Notację węgierską stosuje się także w celu zaznaczenia zasięgu zmiennej. Przykładowo: g_iZmienna : zmienna globalna, integer m_iZmienna : zmienna w strukturze lub klasie, integer m_Zmienna : zmienna w strukturze lub klasie s_Zmienna : zmienna statyczna klasy _Zmienna : zmienna lokalna"*

Cóż notacja ta nie tyle jest rzadko stosowana, co ma chyba największy sens w językach o dynamicznym typowaniu, choć nie tylko. Z pewnością taki kod czyta się wtedy łatwiej.

Niestety nie jest to elastyczne rozwiązanie...(bo co jeśli nagle zmienna prywatna, ma stać się protected?)

link|flag

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.