Hogy tudok C#-ban egy metódusban visszaadni egy tömböt, hogy ha a tömb mérete nem konstanst, és azt egy másik metódus számolja ki, amit az első nem lát?
public static int függvény(int[,] tömb)
{
.
.
.
return tömb[,];
}
"Syntax error, value expected"
return tömb[i,j];
"The name i/j does not exist in the current folder"
Ne haragudj, de ettől a kódtól mit vártál mégis, egy darab jó sor nincs benne.
C#-ban nem kell a tömbnek konstans méretűnek lennie, de attól a szintaxist ismerni kell.
Például ne akarj tömböt visszaadni, ha a visszatérési értéket int-nek definiáltad, vagy hogy return után a változó neve vagy egy új objektum szerepelhet.
Miért, mit kéne megadnom visszatérési értéknek egy int típusú tömb esetén?
"return után a változó neve vagy egy új objektum szerepelhet."
Nem értem mire gondolsz. Return után egy változó szerepel, a tömb nevű két dimenziós tömb.
A probléma még mindig ugyanaz. A tömb mérete nem ebben a függvényben van definiálva, de változókkal vagy üresen nem engedi visszaadni.
"Miért, mit kéne megadnom visszatérési értéknek egy int típusú tömb esetén?"
int típusú tömböt.
A te esetedben:
public static int függvény(int[,] tömb)
""return után a változó neve vagy egy új objektum szerepelhet."
Nem értem mire gondolsz. Return után egy változó szerepel, a tömb nevű két dimenziós tömb."
Nem nem az szerepel.
"return tömb[,];" szerepel "return tömb;" helyett
"A probléma még mindig ugyanaz. A tömb mérete nem ebben a függvényben van definiálva, de változókkal vagy üresen nem engedi visszaadni."
"return tömb[,];"
Ez nem üresen adja vissza a tömböt, nagy tévedés, ez szimplán szintaktikailag hibás.
"return tömb[i,j];"
Ez meg a tömb egy eleme lenne, ha az i és j definiálva lenne, de a fordító egyébként mindkét hibát elég egyértelműen jelezte.
Az még mindig nem tiszta igazából nekem, hogy mit szeretnél csinálni ebben a fügvénnyel a bemenetként kapott tömbbel.
Ha máshogy nem érted, itt egy példa:
public int[] Foo1(int[] tomb)
{
return tomb;
}
- így adod meg neki, hogy milyen típussal térjen vissza: public int[] Foo1 - te sima int-et írtál, magyarul egy számmal fog visszatérni, nem egy tömbbel.
- így meg visszatérési értéket adsz meg: return tomb; - a tömbödnek van neve is, ezt kell visszadobni.
Summázzuk a dolgokat:
Ha (kétdimenziós) integer tömböt akarsz visszaadni a függvényedben, akkor a visszatérési értéke (kétdimenziós) integer tömb legyen, ne integer. A 'közhiedelemmel' ellentétben ehhez nem kell előre tudnod a tömb méretét:
int[,] SomeMethod(){}
Ha van egy int[,] tömb; változód, akkor arra (minő meglepetés) úgy hivatkozol, hogy tömb, nem úgy, hogy tömb[,]. Tudja a fordító magától is, hogy tömb, elvégre annak van deklarálva.
Az, hogy a tömböd mekkora, sem a paraméterlistában, sem a visszatérésben nem fontos, a C# számára a tömb az tömb, nem érdekli, hány elemből áll.
Tehát az általad vizionált függvény valahogy így néz ki:
public static int[,] függvény(int[,] tömb)
{
.
.
.
return tömb;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!