Diskuze: Přidání více položek do Listu metodou
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 11 zpráv z 11.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Můžeš mít parametr metody jako pole, poté to pole proiterovat a naházet to do listu nebo použít klíčové slovo params, to ti dovolí vložit neomezený počet hodnot, ovšem params už patří možná trochu do pokoročilích věcí. Na druhou stranu nic těžkého to není. Koukni se sem http://www.itnetwork.cz/…y-podrobneji
Metoda přidej v knihovně by měla brát parametr typu Kniha. Ona by vůbec
měla něco brát, když něco přidává Zavolat si ji potom můžeš
několikrát a předat ji různé knihy, které do knihovny přidá.
Dobrá, takže v Program.cs vytvořím knihy, ty pak volat v metodě např. vedecka.Pridej(kniha1) ?
Takhle to myslíš ?
Ano, přesně tak Obvykle
se to u tříd, co v sobě mají nějakou kolekci (např. list) takhle dělá,
že se připraví metoda, co bere v parametru prvek a ten vkládá do toho
vnitřního listu.
Kdybys chtěl doslova, aby ta metoda knih přidala více najednou, musela by brát místo jedné knihy pole knih nebo třeba list knih.
Můžeš si to pak také cvičně zkusit, udělat kromě Pridej také PridejVice.
Teď koukám že tu metodu máš úplně špatně. Tato metoda ti přidá
vždy tu samou a jednu knihu. Navíc je potřeba, aby ti metoda vracela knihu ,
kterou jsi tam právě poslal ? Myslím že ne .
Přečti si několik prvních článků o OOP a měl by jsi to pochopit.
Každopádně, každá metoda může a většinou by měla přijímat určité
parametry. Zde je příklad pro metodu která ti sečte dvě čísla a vrátí
ti výsledek. Parametry máme dva, int cislo1 a int cislo2. Návratová hodnota
metody je int
public int Secti(int cislo1, int cislo2)
{
int vysledek=cislo1+cislo2;
return vysledek;
}
Zatím ti ukážu jak přidat jednu knihu. Když to pochopíš, už víš jak přidat více knih. Tedy pošleš pole knih a proiteruješ je cyklem.
public void PridatKnihu(Kniha novaKniha)
{
Seznam.Add(novaKniha);
}
Bylo by dobré aby metoda měla ošetřeno zda kniha už není přidaná
public bool PridatKnihu(Kniha novaKniha)
{
if(!Seznam.Contains(novaKniha)
{
Seznam.Add(novaKniha);
return true;
}
else return false;
}
Nyní ti metoda vrací bool, aby jsi jednoduše zjistil zda se byla kniha
přidána nebo ne. Jak jsem řekl na začátku, pročti si seriál o OOP ne
celý, ale kus, udělej několik prográmků a až to pochopíš jdi dál
//EDIT
sdraco byl rychlejší zde
máš takový ucelený příklad
Nebo-li mohu to vyřešit i tak že napíšu do třídy Knihovna.cs
public Kniha Pridej()
{
Seznam.Add(kniha1);
return kniha1;
}
a knihy si vytvořím v Program.cs kde jim přidám parametry a následně je
budu volat např.
vedecka.Pridej(kniha1);
vedecka.Pridej(kniha2);
.... atd ?
Ne. Ta metoda musí mít vstupní parametr. Takto ti i ten program spadne. Za
druhé, k čemu vracet knihu kterou jsi právě přidal. Máš v tom úplný
guláš, šup, jdi si přečíst první články . Podívej se potom na můj
příspěvek o řádky výš
Zobrazeno 11 zpráv z 11.