Body zdarma Body zdarma
Využij podzimních slev a získej od nás až 40 % bodů zdarma! Více zde

Diskuze: Konverzia cisiel na retazce

Aktivity (4)
Avatar
Miloš Michrina:1. července 20:11

Ahojte,

mam taku otazku. Som uplny zaciatocnik a ucim sa C#. Skusam si urcite priklady presne podla knizky, ktoru som si zakupil. V knizke u jedneho prikladu sa uvadza toto:

int cislo1 = 5;
int cislo2 = 10;
int soucetCisel = cislo1 + cislo2;
string retazec1 = cislo1.ToString();
string retazec2 = cislo2.ToString();
string soucetRetazcu = retazec1 + retazec2;
string soucetRetazcu2 = cislo1.ToString() + cislo2.ToString();
Console.WriteLine("Soucet cisel = {0}" , soucetCisel);
Console.WriteLine("Soucet retazcu = {0}", soucetRetazcu);
Console.ReadKey();

Ja si samozrejme vsetko viac krat preecvicujem aby som zacal chapat, co sa vlastne vypisalo do kodu. Len jednej veci nerozumiem, v knizke som to nenesiel zatial, ale nechcme ani pokracovat, kym to nepochopim:

Co znamena tento riadok?

string soucetRetazcu2 = cislo1.ToString() + cislo2.ToString();

Ja som to skusil aj bez tohto riadku a program sa mi uplne rovnako spustil a nevypisalo mi ziadnu chybu.

int cislo1 = 5;
            int cislo2 = 10;
            int sucetCisiel = cislo1 + cislo2;
            string retazec1 = cislo1.ToString();
            string retazec2 = cislo2.ToString();
            string sucetRetazcov = retazec1 + retazec2;
            Console.WriteLine("Sucet cisiel = {0}", sucetCisiel);
            Console.WriteLine("Sucet retazcov = {0}", sucetRetazcov);
            Console.ReadKey();

Mozno ak by som chapal tomu riadku tak by to bolo super, len mi to nejde do hlavy preco sa musi vytvorit nova premenna

soucetRetazcu2

Dakujem ak mi to niekto aspon malicko vysvetli, preco je tomu tak. :)

 
Odpovědět 1. července 20:11
Avatar
HONZ4
Člen
Avatar
Odpovídá na Miloš Michrina
HONZ4:1. července 20:47

Je to jedno, někdo to takhle rozepisuje. Rozdíl je pouze ve vzhledu.

ToString(); vytvoří nový string v obou případech. V případě použití "string retazec1 = cislo1.ToString();" mu je přiřadíš název.

 
Nahoru Odpovědět 1. července 20:47
Avatar
Odpovídá na HONZ4
Miloš Michrina:1. července 20:58

Dakujem za strucnu a jasnu odpoved :)

 
Nahoru Odpovědět 1. července 20:58
Avatar
Jan Osuský
Člen
Avatar
Jan Osuský:1. července 21:00

Ahoj,
Je to ekvivalentní zápis k tomu prvnímu sucetRetazcov. Zatímco u prvního sucetRetazcov si prvně převedená čísla vložíš do proměnných retazec1 a retazec2 a ty pak sečteš, a vložíš do sucetRetazcov, u druhého sucetRetazcov2 nevyužíváš pomocných proměných ( retazec1 a retazec2), ale cisla rovnou konvertuješ pří sčítáni. Je to tedy kratší zápis toho samého, ušetříš si dvě proměně.
Když si řádek s soucetRetazcu2 odstranil tak se nic nestalo proto, protože ho v původním kódu nijak nepoužíváš. Kdyby jsi do kódu přidal řádek

Console.WriteLine("Sucet retazcov2 = {0}", sucetRetazcov2);

a řádek s soucetRetazcu2 odstranil, pak by program spadl s chybou.

 
Nahoru Odpovědět 1. července 21:00
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Jan Osuský
Miloš Michrina:1. července 21:11

Parada :)

Takze v konecnom vysledku to mozem zapisat takto :

int cislo1 = 5;
int cislo2 = 10;
int soucetCisel = cislo1 + cislo2;
string sucetRetazcov = cislo1.ToString() + cislo2.ToString();
Console.WriteLine("Soucet cisel = {0}", soucetCisel);
Console.WriteLine("Sucet retazcov = {0}", sucetRetazcov);
Console.ReadKey();

Dakujem :)

 
Nahoru Odpovědět 1. července 21:11
Avatar
HONZ4
Člen
Avatar
Odpovídá na Miloš Michrina
HONZ4:1. července 21:23

Ano. Nebo taky:

Console.WriteLine("Sucet retazcov = {0}{1}", cislo1, cislo2);
 
Nahoru Odpovědět 1. července 21:23
Avatar
Miloš Michrina:1. července 21:38

Vyskusal som to este takto a vdaka tomu vlaknu, som to ovela viac pochopil ako z knizky, dakujem vam obom :)

int cislo1 = 5;
int cislo2 = 10;
int sucetCisel = cislo1 + cislo2;
string sucetRetazcov = sucetCisel.ToString();
Console.WriteLine("Soucet cisel = {0}", sucetCisel);
Console.WriteLine("Sucet retazcov = {0}", sucetRetazcov);
Console.ReadKey();
 
Nahoru Odpovědět 1. července 21:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.