C# -- mi a különbség?
Üdv, most tanulom a C# programozási nyelvet, és nem nagyon értek valamit.
ELSŐ KÉRDÉS
Egészen pontosan mi a különbség a
A=Convert.ToInt32(Console.ReadLine());
és a
A=Console.ReadLine();
sorok között abban az esetben ha int típusú változót veszünk fel?
Írtam egy ilyen programot:
using System;
namespace Valtozok
{
class Program
{
static void Main(string[] args)
{
int a = 0, b = 0;
Console.Write("a értéke: ");
a = Convert.ToInt32 (Console.ReadLine());
Console.Write("b értéke: ");
b = Convert.ToInt32 (Console.ReadLine());
Console.WriteLine("\n a={0} \n b={1} \n a+b={2}", a, b, a + b);
Console.ReadLine();
}
}
}
És tökmindegy hogy melyiket használom, mert mind a kettő esetben működik a program ugyanúgy, csak annyi , hogy amikor using System; -t használom akkor indítás előtt hibát jelez a visual c# 2010 express.
MÁSODIK KÉRDÉS
Mi a különbség a c nyelvek között? (c, c#, c++)
Köszönöm a választ :)
MÁSODIK KÉRDÉSED:
http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
köszönöm, nem láttam rá választ, nem volt időm a kérdés megírása után sokat keresni.
Első kérdésről tud valaki nyilatkozni? :)
Szerintem te valamit benéztél. Ha konvertálás nélkül adod értékül "a"-nak, akkor le se fordulhat, mivel a ReadLine stringet ad vissza, ezt nem adhatod értékül "a"-nak.
Ha a using System-et kiveszed, akkor mégnagyobb a baj, hiszen a Console osztályt se fogja megtalálni.
utolsó: ezt mondtam én is. a=integer, ezért nem lehet stringet adni értéknek.
Hol volt egyébként szó using System kivevésről? eszembe se volt :D
"hogy amikor using System; -t használom akkor indítás előtt hibát jelez a visual c# 2010 express. "
Ebből számomra az következik, hogy ahhoz hogy működjön a program ki kell szedni a using Systemet. Nálad működök a program => te kiszedted a using Systemet. A fenti mondatot te írtad. Én csak ezen a módon tudom értelmezni. Lehet félreértettem amit írtál, de ebben az esetben szerintem te írtad rosszul.
a using System mindenképp kell ahhoz, hogy működjön a program (Megtalálja a Console osztályt). Szóval szerintem még mindig te nézel be valamit. Tuti, hogy a ReadLine visszatérési értékét nem fogod tudni betenni egy int-be
Hoppá, nem azt akartam írni :)
A mondat helyesen így szólt volna:
hogy amikor A=Console.ReadLine(); -t használom akkor indítás előtt hibát jelez a visual c# 2010 express.
Ezt benéztem, bocs :D
Tehát a kérdés még mindig az hogy egy alapból integer változót miért kell integerré konvertálni.
És ami történik, hogy ha nem konvertálom integerré, akkor is ugyanúgy lefut a program, csak előtte ad egy hibaüzenetet.
A Console.ReadLine() eredménye string. Ezt kell integerré konvertálni (Parszolni)
Ha ezt nem teszed meg, akkor fordítási hibát kapsz. Kizárt dolog, hogy így működik a programod. Max az lehet, hogy egy korábban lefordított helyes verziót indítasz el. Nyomj egy Clean-t, vagy töröld le a bin és obj könyvtárakar. Tuti nem fog odakerülni exe, ha nem konvertászl
Köszönöm, mostmár világos. Az viszont még mindig fennáll, hogy TÉNYLEG elindult a program convert / parse nélkül is :D
Mindent megcsináltam. Na mindegy, a logikát értem, az a lényeg :) Köszönöm, megy a zöld pacsi
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!