Forum » Programiranje » 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
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;
}
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;
}
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
{
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Povezani seznamOddelek: Programiranje | 2096 (1693) | pohano |
» | C# (strani: 1 2 )Oddelek: Programiranje | 12050 (8885) | Ericssony |
» | C# LinkedListOddelek: Programiranje | 1185 (1036) | PoPon2 |
» | [NALOGA] Java: RekurzijaOddelek: Programiranje | 954 (768) | Spura |
» | [C#] overloaded operator ==Oddelek: Programiranje | 1111 (990) | user4683 |