[ bm101 @ 31.10.2002. 22:38 ] @
Nabavio sam knjigu od CET-a "C# od početka" u kojoj primeri forsiraju obaveznu upotrebu ključne reči this prilikom referenciranja podataka članova klase.
Sad, koliko se sećam, u C++ je this korišćen najčešće u operatorima kada bi trebalo vratiti pokazivač ili referencu na trenutnu instancu klase. Naravno u C# sada su samo reference u pitanju (u managed "modu"), tako da mi nije najjasnije zašto je forsiran model pristupa podacima npr:

this.m_hForm; // naravno ovaj izraz je unutar private / public metoda klase

kada je m_hFrom već DEKLARISAN u klasi, kao član klase.

Naravno probao sam u kodu da koristim "staru" notaciju bez this-a i, naravno, radi.

BTW, vidim i da form designer forsira this.member način pristupa, iako su podaci članovi lepo definisani unutar klase.

DAKLE: zašto this, kada radi i bez nj?
[ Dragi Tata @ 31.10.2002. 23:12 ] @
Mogu da smislim dva razloga za to, mada naravno ne znam tačno čime su se rukovodili pisci knjige.

1. IntelliSense. Hoćeš da otkucaš ime promenljive članice, ali se ne sećaš tačno kako se zove. Onda otkucaš this. i pojavi ti se lista svih članica klase - biraj šta ti je volja.

2. Čitljivost koda. Ovo je bitno za one koji će da održavaju tvoj kod. Ako napišeš this.form odmah se vidi da je promenljiva form članica iste klase. Doduše, često se u tu svrhu korist koristi posebno obeležavanje promenljivih, kao što je mađarska notacija, ili upotreba prefiksa (ili postfiksa) _
[ bm101 @ 01.11.2002. 07:31 ] @

Za IntelliSense je ok, mada što se tiče čitljivosti koda, sama čitljivost se smanjuje kako se povećava veličina izraza koji se koriste, tako da baš ako ne mora da se koristi this, bilo bi čitljivije bez istog.
[ Reljam @ 01.11.2002. 08:34 ] @
Citat:
Dragi Tata:
2. Čitljivost koda. Ovo je bitno za one koji će da održavaju tvoj kod. Ako napišeš this.form odmah se vidi da je promenljiva form članica iste klase. Doduše, često se u tu svrhu korist koristi posebno obeležavanje promenljivih, kao što je mađarska notacija, ili upotreba prefiksa (ili postfiksa) _

Madjarska notacija se vise ne preporucuje, tacnije vise nije po 'pravilima'. Kao razlozi se navodi to da sa modernim alatom (dakle IntelliSense) i nije neka dobit, jer klikom misa ili pozicioniranjem kursora moze da se vidi tip promenljive, a madjarska notacija moze da ucini kod tezim za pracenje. Naravno sada moze da se diskutuje sta je tacno madjarska notacija, tj da li tipican 'hungarian wart' ima jedno ili 2 slova, ili je neki monstrum od 7 karaktera... :)
[ Dragi Tata @ 03.11.2002. 04:54 ] @
Mađarsku notaciju sam naveo kao primer, a inače je i ja ne koristim (u mojoj firmi je zabranjena). U poslednje vreme obično (po preporuci Herb Sutter-a) promenljivama članicama dodajem postfix _ (npr ime_ ili brojGodina_) kad programiram u C++u, a sa .NET jezicima se držim notacije koju preporučuje Microsoft:

http://msdn.microsoft.com/libr.../cpconcapitalizationstyles.asp
[ Java Beograd @ 21.10.2003. 14:15 ] @
Mislim da je pravi odgovor: bez ikakog razloga. Posto sam se bavio javom, this sam koristio da potenciram promenljivu klase. Na primer:
Code:

public class MyClass {
    String name;

    public setName(String name) {
        this.name = name;
    }
}


Dakle, ukoliko se pojave (kao da su pale sa neba) dve promenljive istog imena, onda se promenljiva klase referencira sa this.