Dedičnosť v metódach – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Dedičnosť v metódach – .NET – Fórum – Programujte.comDedičnosť v metódach – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
zonda0
Stálý člen
7. 1. 2009   #1
-
0
-

Mám taký prolém:



private void button1_Click(object sender, EventArgs e)
{
int cislo = 0;
PrvaMetoda(cislo);
DruhaMetoda(cislo);
MessageBox.Show(cislo.ToString()); // tu by int cislo malo mať honotu 11 ale nemá .Má stále 0
}

private void DruhaMetoda(int cislo)
{
cislo = 10;
}

private void PrvaMetoda(int cislo)
{
cislo++;
}


Za pomoc ďakujem .

Nahlásit jako SPAM
IP: 78.99.32.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
Reklama
Reklama
yterbium0
Stálý člen
7. 1. 2009   #2
-
0
-

metody máš typu void, čiže Ti nič nevracajú, daj si tam int, a nezabudni na príkaz return :smile1:

Nahlásit jako SPAM
IP: 91.127.254.–
Chrasty
~ Redaktor
+4
Posthunter
7. 1. 2009   #3
-
0
-

Samozřejmě, že bude mít hodnotu 0, vždyť tu hodnotu nevracíš. To "cislo" je v každém tom kontextu jako jiná proměnná. Máš vlastně dvě možnosti, jak to opravit, abys nakonec dostal 11 :

private void button1_Click(object sender, EventArgs e) 

{
int cislo = 0;
cislo = PrvaMetoda(cislo);
cislo = DruhaMetoda(cislo);
MessageBox.Show(cislo.ToString());
}

private int DruhaMetoda(int cislo)
{
cislo = 10;
return cislo;
}

private int PrvaMetoda(int cislo)
{
return cislo++;
}

nebo:
class X 

{
int cislo = 0;
private void button1_Click(object sender, EventArgs e)
{
PrvaMetoda(cislo);
DruhaMetoda(cislo);
MessageBox.Show(cislo.ToString());
}

private void DruhaMetoda(int cislo)
{
cislo = 10;
}

private void PrvaMetoda(int cislo)
{
cislo++;
}
}

Nahlásit jako SPAM
IP: 193.179.196.–
zonda0
Stálý člen
7. 1. 2009   #4
-
0
-

tu druhú som prišiel ale na tú prvú ne díkk fest.

Nahlásit jako SPAM
IP: 78.99.32.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
7. 1. 2009   #5
-
0
-

To Chrasty : Ještě by to šlo s pomocí out parametrů.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
mnn
~ Anonymní uživatel
118 příspěvků
7. 1. 2009   #6
-
0
-

No imho nikdy nedostane 11, pretoze na konci to prepisuje na 10, tj keby sme vynechali tie metody (ktore by boli s ref alebo out alebo return) tak je to v podstate toto:

int cislo = 0;

cislo++;
cislo = 10;

Nahlásit jako SPAM
IP: 78.98.162.–
Chrasty
~ Redaktor
+4
Posthunter
7. 1. 2009   #7
-
0
-

To mnn : Jojo, máš pravdu, přehlédl jsem pořadí volání těch metod:)

Nahlásit jako SPAM
IP: 193.179.196.–
rudolf_franek0
Stálý člen
7. 1. 2009   #8
-
0
-

jeste by slo vse resit napriklad takhle:

public class MetodoCislo

{
public int Cislo { get; set; }
public void PrvaMetoda()
{
Cislo++;
}
public void DruhaMetoda()
{
Cislo = 10;
}
}
... ... ...
private void button1_Click(object sender, EventArgs e)
{
MetodoCislo cisilko = new MetodoCislo();
cisilko.PrvaMetoda();
cisilko.DruhaMetoda();
MessageBox.Show(cisilko.Cislo.ToString());
}
Ale plati, ze z duvodu poradi volani metod vysledek fakt nebude nikdy 11 - viz vyse.

Nahlásit jako SPAM
IP: 90.178.66.–
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, 71 hostů

Podobná vlákna

Dědičnost — založil Bobek

Dědičnost — založil paul27

Dedicnost ... — založil Koudis

Dedicnost — založil Jumper

Dědičnost — založil cheeester

 

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