Diskuze: C# cesty kódu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Když ve slova.pozdravy nebude nic, tak ti to do toho foreache ani neskočí a žádný return nebude "po cestě".
Milan Křepelka
A kde a jak mám ten return napsat? Mám tam dat nějakou podmínku?
Ahoj,
popravdě programovat v C# se teprve učím, ale myslím, že problém může
být v tom, že cyklus můžeš teoreticky opustit dříve než doleze k return
(např. při použití break před if podmínkou), pak metoda nic nevrací.
Return "Nerozumím"; bych tedy vložil až za cyklus foreach.
Prosím ostatní o případnou korekci nebo doplnění.
Díky.
Koukám, že má reakce byla trochu zdlouhavá a že diskuze už začala.
Musíš mít return tam, kde ten program bude procházet za všech okolností. Např.
public string Odpoved(string str)
{
string odpoved = "NIC";
foreach (string p in slova.pozdravy)
{
if (str.ToLower().Contains(p))
{
odpoved = "Zdravim";
}
else
{
odpoved = "Nerozumím";
}
}
return odpoved;
}
Return by mohol byť takto:
public string Odpoved(string str)
{
string vystup = "";
foreach (string p in slova.pozdravy)
{
if (str.ToLower().Contains(p))
{
vystup = "Zdravím";
}
else
{
vystup = "Nerozumím";
}
}
return vystup;
}
ale to asi nerieši tvoj problém.
Cyklus asi berie viacej vstupov (neviem koľko ich máš v kolekcii
slova.pozdravy) a ty potrebuješ iba jeden výstup typu string. Iné by bolo,
keby si vracal pole stringov.
Zobrazeno 9 zpráv z 9.