Avatar billede thomas_n Nybegynder
02. oktober 2012 - 15:16 Der er 5 kommentarer og
2 løsninger

Public Int32 og array

Hej,

Nogen der kan hjælpe med mit lille problem?

Problemet i nedenstående kode er at Visual Studio brokker sig over dette:
Not all code paths return a value

og markerer Search som problemet.

------------------------------------------------------
public Int32 Search(Int32[] array1, Int32 nbr)
{
for (int i = 0; i != array1.Length; i++)
if (array1[i] == nbr)
label5.Text = label5.Text + " " + array1[i];
}
------------------------------------------------------
Avatar billede erikjacobsen Ekspert
02. oktober 2012 - 15:25 #1
En motode, der siger den afleverer en int32 (en int), skal også aflevere en int32. Du har ingen return.
Skal den overhovedet lave en beregning, der giver et resultat, der kan afleveres?
Avatar billede arne_v Ekspert
02. oktober 2012 - 15:26 #2
ja?

du siger at metoden skal returnere en int

og det goer den ikke
Avatar billede Syska Mester
02. oktober 2012 - 15:26 #3
Du har sagt at Search skal returnere en Int32 ... som det gør du ikke.

public Int32 Search(Int32[] array1, Int32 nbr)
{
for (int i = 0; i != array1.Length; i++)
if (array1[i] == nbr)
label5.Text = label5.Text + " " + array1[i];
}

Du vil måske have noget ala:
public void Search(Int32[] array1, Int32 nbr)
{
for (int i = 0; i != array1.Length; i++)
if (array1[i] == nbr)
label5.Text = label5.Text + " " + array1[i];
}
eller
public Int32 Search(Int32[] array1, Int32 nbr)
{
for (int i = 0; i != array1.Length; i++)
if (array1[i] == nbr)
{
label5.Text = label5.Text + " " + array1[i];
return array1[i];
}
// Jeg er så ikke lige klar over hvad du vil returnere hvis den ikke findes. Måske bare 0
return 0;
}
Avatar billede runesoft Nybegynder
02. oktober 2012 - 15:26 #4
Det er fordi din metode ikke returnerer en int som du har defineret den skal gøre.  enten skal du ændre din definition, eller returnere en int.

f.eks.
public void Search(Int32[] array1, Int32 nbr)
{
for (int i = 0; i != array1.Length; i++)
if (array1[i] == nbr)
label5.Text = label5.Text + " " + array1[i];
}
Avatar billede arne_v Ekspert
02. oktober 2012 - 15:26 #5
public Int32 Search(Int32[] array1, Int32 nbr)
{
for (int i = 0; i != array1.Length; i++)
if (array1[i] == nbr)
label5.Text = label5.Text + " " + array1[i];
return 42;
}

eller

public void Search(Int32[] array1, Int32 nbr)
{
for (int i = 0; i != array1.Length; i++)
if (array1[i] == nbr)
label5.Text = label5.Text + " " + array1[i];
}
Avatar billede thomas_n Nybegynder
02. oktober 2012 - 16:20 #6
Tak for hjælpen - den sev vist ind med alle de tilbagemeldinger ;)

I må vist dele pointene, jer med kode eksemplerne (Arne, runesoft og buzz)

Sender I et svar.
Avatar billede arne_v Ekspert
03. oktober 2012 - 03:46 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester