Slovíčko This. – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Slovíčko This. – .NET – Fórum – Programujte.comSlovíčko This. – .NET – Fórum – Programujte.com

 

RePRO0
Super člen
4. 2. 2009   #1
-
0
-

Mám problém s použitím tohoto klíčového slova. Nikdy nevím, kdy ho mám použít. V metodě to je samozřejmé, ale kdy a proč? Neměli by jste tu pro mě nějakej dobrej příklad na to, kdy ho použít? Na netu - ani v knížkách o tom nic moc není. Díky. ;-)

Nahlásit jako SPAM
IP: 213.195.202.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Japo0
Návštěvník
4. 2. 2009   #2
-
0
-

Jestli chápeš, co zmanená, tak podle mě není, co řešit :).

Ale používat se nemusí, pokud tedy nemáš stejně pojmenovanou lokální a třídní proměnnou:



class MojeTrida {
int promenna;

void metoda() {
int promenna;
promenna = 23;//přiřazení do lokální proměnné
this.promenna = 42;
}
}


Ale já bych ho přesto používal, protože zlepšuje přehlednost (hned vidíš, že se nejedná o lokální proměnnou).

Nahlásit jako SPAM
IP: 90.176.243.–
RePRO0
Super člen
4. 2. 2009   #3
-
0
-

Díky Japo. To jsem nevěděl, že se tím pouze rozeznává lokální a třídní proměnná. To znamená, že ta "this.promenna = 42" je třídní (globální) proměnná?

Nahlásit jako SPAM
IP: 213.195.202.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
4. 2. 2009   #4
-
0
-

To RePRO : Globální proměnná to není. C# je nepodporuje. Pomocí this lze rozlišit třídní proměnné a lokální (popř. parametry metod), ale také se používá k vytváření accessorů a k volání přetížených konstruktorů.

public Trida():this("text")

{
// nejprve se provede následující konstruktor
}

public Trida(string str)
{
}

public string this[int index]
{
get;
set;
}

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
RePRO0
Super člen
4. 2. 2009   #5
-
0
-

Fajn, dík.

class MojeTrida { 

int promenna;

void metoda() {
int promenna;
promenna = 23;//přiřazení do lokální proměnné
this.promenna = 42;
}
}


A tady: this.promenna = 42; znamená tedy třídní proměnná?

Nahlásit jako SPAM
IP: 213.195.202.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
4. 2. 2009   #6
-
0
-

To RePRO : Ano.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
rudolf_franek0
Stálý člen
20. 2. 2009   #7
-
0
-

Take lze 'this' pouzit this pri vytvareni Extension metod - napriklad:

static class Sample

{
public static string DejMiPrvniDvaNeboAa(
this string vstupniText)
{
if (string.IsNullOrEmpty(vstupniText) ||
vstupniText.Length < 2)
{
return "Aa";
}
return vstupniText.Substring(0, 2);
}
}
a pouzilo by se to takhle:
string sample = "Ahoj".DejMiPrvniDvaNeboAa();

string sample2 = "".DejMiPrvniDvaNeboAa();


ale funguje to jen pro Framework 3.5 a je to trochu jine vyuziti 'this' nez je popsano vyse

Nahlásit jako SPAM
IP: 90.178.66.–
20. 2. 2009   #8
-
0
-

To rudolf_franek : To není tak docela pravda. Rozšiřující metody jsou jen syntaktickej cukr. Jakmile to projde C# 3.0 kompilátorem, tak to běhá i na .NET 2.0.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
rudolf_franek0
Stálý člen
26. 2. 2009   #9
-
0
-

To djanosik : ano je to syntakticky cukr. I kdyz psat si svoji aplikaci v Frameworku 2.0 a mit knihovnu rozsirujicich metod v Frameworku 3.5 me osobne prijde trochu zvlastni.. ale ano slo by to.

Nahlásit jako SPAM
IP: 90.178.66.–
1. 3. 2009   #10
-
0
-

To rudolf_franek : Jo to mě taky. Myslel jsem to spíš tak, že lze celou tu aplikaci napsat pod 3.5 a provozovat pod 2.0.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mega.Lama0
Stálý člen
1. 3. 2009   #11
-
0
-

Ja stále používam slovíčko this...zlozvyk z JavaScriptu...

Nahlásit jako SPAM
IP: 85.135.236.–
http://www.youtube.com/watch?v=j_tWGyCK6Ds ...kto by veril,že je to otcov bratranec z druhého kolena?...
RePRO0
Super člen
3. 3. 2009   #12
-
0
-

Tak díky chlapci. :-)

Nahlásit jako SPAM
IP: 213.195.202.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý