Kezdőoldal » Számítástechnika » Programozás » C#: miért nem működik a bool...

C#: miért nem működik a bool metódusom?

Figyelt kérdés

Van egy static void bool metódus a programomban ami meg van hívva a main-be, és annyit szeretnék hogy egy bool értékét visszaadja a return.

Azonban ha a metóduson belül true érték lesz a return, a main-ben ugyanúgy false marad.

Megpróbálom felvázolni a programomból a lényeget:


public static void Main (...)

{

bool x = false;


Valami(x);

}

static void Valami (bool y)

{

BlaBlaBla


return y;

}


máj. 8. 18:00
1 2
 1/14 anonim ***** válasza:
59%

Honnan derül ki, hogy a meghívott metódus milyen értéket ad vissza? Csak mert annyit látok, hogy meghívod, és kész.


Egyébként, ha jól értem, pont a lényeg marad ki, mert a "BlaBlaBla" fedné le, mi történik az átadott paraméterrel.

máj. 8. 18:10
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:

Ha vissza akarod adni az értéket akkor pl így:


public static void Main(string[] args)

{

bool x=false;

Console.WriteLine(x);


x=Valami(x);

Console.WriteLine(x);

}


static bool Valami (bool y)


{


y=true;



return y;


}

máj. 8. 18:12
Hasznos számodra ez a válasz?
 3/14 A kérdező kommentje:
#1 kiírattam a konzolra a futás során az aktuális értékeket a Mainben és a metódusban amikor teszteltem (pl. Console.WriteLine(c);), és így láttam hogy felveszi-e a true értéket illetve hogy meddig marad úgy.
máj. 8. 18:19
 4/14 A kérdező kommentje:
Console.WriteLine(x)***
máj. 8. 18:19
 5/14 anonim ***** válasza:
70%

Mivel hiába adod vissza, az nem ugyanaz lesz.

Függvényhívásnál csinálsz egy másolatot belőle, és a másolaton fog dolgozni a Valami függvényed.

Az eredeti persze hogy ugyanúgy marad.

máj. 8. 18:27
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:
52%

#5: igen, én is erre gondoltam, bár elsőre megzavart, amit #3 alatt írta, mert azt hittem elsőre, hogy a függvény-hívást írta be a Console.WriteLine-ba.


Kérdező: alapvetően azt kell megérteni, hogy a a "return" kulcsszó visszad egy értéket, vagyis a függvénnyel értéket adsz. Ez kimarad.


Ha a referenciáját adnád át a változónak, és így módosítanád magát a változót, az ok, de akkor a returnnek nem sok értelme ebben a kontextusban.

máj. 8. 18:36
Hasznos számodra ez a válasz?
 7/14 A kérdező kommentje:

#6 valami ilyesmi kezdett kirajzolódni nálam csak nem tudtam teljesen összerakni, köszi!

Tehát vagy ref-el hozom létre ezt a boolt, vagy függvénnyel adok egy értéket.


Amúgy az is oké hogy azért nem működik mert egy másolatot használ a metódus, viszont azt furcsállom hogy más értékkel ez működik. Például egy Main-ben lévő tömbbe be tud tenni egy stringet (amit a metódus kér be a konzolról), és az a helyén is marad.

máj. 8. 20:04
 8/14 anonim ***** válasza:
52%

"Például egy Main-ben lévő tömbbe be tud tenni egy stringet"


"Array types are reference types derived from the abstract base type Array."

[link]


Tehát ha tömböt adsz át paraméterként, akkor valójában annak referenciáját adod át. Így értelemszerűen az eredeti tömböt módosítod-

De azért javaslom, hogy a rendelkezésdere álló tananyagot olvasd el, mert sok nyelv közül nem a C#-ban vagyok a legerősebb.

máj. 8. 20:21
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:
Aki ilyen lazán lepontoz, írhatna okosabbat...
máj. 9. 19:17
Hasznos számodra ez a válasz?
 10/14 A kérdező kommentje:
Na végül létrehoztam egy class-t amibe beleraktam egy public boolt, úgy tűnik így perfectül fut
máj. 10. 00:17
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!