» »

c# return problem

c# return problem

fr0sty ::

Pozdravljeni

Imam manjši problem z vračanjem vrednosti funkcije v C#. Stvar gre takole:

private bool preveriCeObstaja(object[] dir,string date)
{
foreach(object direktorij in dir)
{
if(direktorij.ToString().Equals(date)==true)
return true;

else
return false;
}

}

prevajalnik mi izpiše: not all code paths return a value
z mojega vidika to ni res, saj funkcija vrne true ali false za vsak objekt array-a. Kaj tukaj ne štima? Je mogoče treba dodati return statement še izven foreach loop-a? Če ja kje?? Je treba vrniti vrednost za vse parametre, ki jih funcija prejme ob klicu?

Sem še relativno nov kar se programiranja tiče tako da prosim za razumevanje če se mogoče komu ta post zdi preveč trivialen :)

že vnaprej hvala za odgovore

arch5 ::

nisi upošteval da je array lahko prazen, v tem primetru ne vrneš vrednosti

probi tkole private bool preveriCeObstaja(object[] dir,string date)
{
foreach(object direktorij in dir)
{
if(direktorij.ToString().Equals(date)==true)
return true;

else
return false;
}
return false;

}

fr0sty ::

Works like a charm :)

Mi je že jasna zadeva ... najlepša hvala

Phil ::

private bool preveriCeObstaja(object[] dir,string date)
{
foreach(object direktorij in dir)
{
if(direktorij.ToString().Equals(date)==true)
return true;
}
return false;
}
Takole bo najbrž pravilno (če sem pravilno razumel kaj naj funkcija dela).
Funkcija mora imeti vedno return, ki se izvede ob vsakem primeru recimo:

bool test() {
if (i==1) return 1;
if (i==0) return -1;
}
NI pravilna, ker ni nujno da se kateri od pogojev izvede.
Pravilno je:
bool test() {
if (i==1) return 1;
else return -1; // eden od returnov se sigurno izvede
}
Upam da ti pomaga tole.
LP


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Povezani seznam

Oddelek: Programiranje
132096 (1693) pohano
»

C# (strani: 1 2 )

Oddelek: Programiranje
9712050 (8885) Ericssony
»

C# LinkedList

Oddelek: Programiranje
91185 (1036) PoPon2
»

[NALOGA] Java: Rekurzija

Oddelek: Programiranje
5954 (768) Spura
»

[C#] overloaded operator ==

Oddelek: Programiranje
91111 (990) user4683

Več podobnih tem