Žádné přetížení pro metodu TryParse nepřevezme tento počet argumentů: 1 – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Žádné přetížení pro metodu TryParse nepřevezme tento počet argumentů: 1 – .NET – Fórum – Programujte.comŽádné přetížení pro metodu TryParse nepřevezme tento počet argumentů: 1 – .NET – Fórum – Programujte.com

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

Montezo
~ Anonymní uživatel
180 příspěvků
12. 12. 2021   #1
-
0
-

Kód je zde: http://kod.djpw.cz/tzed

Potíž je jednoduše v tom, že zadané číslo je bráno jako znak, ne jako číslo (se kterým se dá počítat). Co s tím?

Nahlásit jako SPAM
IP: 178.255.168.–
12. 12. 2021   #2
-
0
-

Co s tím? Podívat se do dokumentace. TryParse vrací bool a má 2 parametry. První je string ze kterého se má načíst číslo a druhý je ve tvém případě out float. 

string inputText = "198.25";
float vystupCislo = 0;

bool success = float.TryParse(inputText, out vystupCislo);

Pomocí návratové hodnoty pak můžeš nastavit defaultní hodnotu výstupu pokud konverze selže.

hu

Nahlásit jako SPAM
IP: 2001:af0:ffe4:85f4:85af:26cd:9d98:6b97...–
Montezo
~ Anonymní uživatel
180 příspěvků
12. 12. 2021   #3
-
0
-

Okej, ale jak to mám nacpat na ten můj příklad, když chci docílit toho, 

A] co je to vlastně "přetížení"

B] proč mu vadí "jeden argument"? 

Nahlásit jako SPAM
IP: 178.255.168.–
12. 12. 2021   #4
-
0
-

Chybí ti základy. "Přetížení metody" si můžeš vygůglit. Může existovat několik metod se stejným názvem, ale liší se počtem parametrů a/nebo datovým typem. Proč mu vadí jeden argument bys vyčetl v dokumentaci. Protože metoda TryParse nemá žádné přetížení přijímající jeden parametr. Jak nacpat tvůj příklad? Přečíst si ukázku kódu z mého příspěvku popř. vygůglit si příklady použití TryParse. Jsou i v dokumentaci. A nakonec doporučuji si přečíst tutoriál a projít si jeho příklady krok za krokem. Dobrý tutoriál je třeba na IT network. Prvních několik dílů zdarma, pak je to placený, stojí to několik set Kč.

hu

Nahlásit jako SPAM
IP: 2001:af0:ffe4:85f4:85af:26cd:9d98:6b97...–
Montezo
~ Anonymní uživatel
180 příspěvků
12. 12. 2021   #5
-
0
-

Při studiu C# používám tuto knihu:

https://books.google.cz/books/about/Programov%C3%A1n%C3%AD_v_C.html?id=yGsWEAAAQBAJ&printsec=frontcover&source=kp_read_button&hl=cs&redir_esc=y#v=onepage&q&f=false

Na straně 162 je něco o přetěžování, ofotil bych to, ale z mobilu teď nemohu použít. Ale nezmoudřel jsem z toho, jak to použít na vyřešení mého problému. Otázka tedy stále zůstává: co s tím? 

Nahlásit jako SPAM
IP: 178.255.168.–
BDS+3
Věrný člen
12. 12. 2021   #6
-
0
-

#5 Montezo
udělám to tak, abych tvůj kod moc nezměnil: 

    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Vítejte v kalkulačce");
            Console.WriteLine("Zadejte první číslo:");
            float a, b;
            if(float.TryParse(Console.ReadLine(), out a))
            {
                Console.WriteLine("Zadejte druhé číslo:");
                if (float.TryParse(Console.ReadLine(), out b))
                {
                    Console.WriteLine("Zvolte si operaci:");
                    Console.WriteLine("1 - sčítání");
                    Console.WriteLine("2 - odčítání");
                    Console.WriteLine("3 - násobení");
                    Console.WriteLine("4 - dělení");
                    int volba = 0;
                    if (int.TryParse(Console.ReadLine(), out volba))
                    {
                        float vysledek = 0;
                        switch (volba)
                        {
                            case 1:
                                vysledek = a + b;
                                break;
                            case 2:
                                vysledek = a - b;
                                break;
                            case 3:
                                vysledek = a * b;
                                break;
                            case 4:
                                vysledek = a / b;
                                break;
                        }
                        if ((volba > 0) && (volba < 5))
                            Console.WriteLine("Výsledek: {0}", vysledek);
                        else
                            Console.WriteLine("Neplatná volba");
                        Console.WriteLine("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou.");
                        Console.ReadKey();
                    }
                    else Console.WriteLine("Chybné zadání VOLBA");
                }
                else Console.WriteLine("Chybné zadání B");
            }
            else Console.WriteLine("Chybné zadání A");


        }
    }

po novu lze použít i:

if(int.TryParse(Console.ReadLine(), out int a)){...

Nahlásit jako SPAM
IP: 185.69.68.–
W10 :)
12. 12. 2021   #7
-
0
-

#6 BDS
Tomu se vyhýbám. Dát mu hotový kód ho nic nenaučí.

Nahlásit jako SPAM
IP: 2001:af0:ffe4:85f4:f906:efbd:7eaa:c023...–
BDS+3
Věrný člen
12. 12. 2021   #8
-
0
-

#7 hlucheucho
jemu se cokoliv těžko vysvětluje, zatím nedokázal pochopit ani první lekci. Pokud mu pojmenuješ jinak proměnnou je úplně v prd..i. apd. Divím se, že mám ještě chuť vůbec reagovat. Žádný učený z nebe nespadl, ale tohle je extrém..

Nahlásit jako SPAM
IP: 185.69.68.–
W10 :)
BDS+3
Věrný člen
12. 12. 2021   #9
-
0
-

#5 Montezo
Když jsem ti to tu dal celé, už víš jak použít .TryParse?

Nahlásit jako SPAM
IP: 185.69.68.–
W10 :)
Montezo
~ Anonymní uživatel
180 příspěvků
12. 12. 2021   #10
-
0
-

Áno, děkuji.... 

Nahlásit jako SPAM
IP: 178.255.168.–
BDS+3
Věrný člen
12. 12. 2021   #11
-
0
-

#10 Montezo
Děkuji za reakci.

Nahlásit jako SPAM
IP: 185.69.68.–
W10 :)
Montezo
~ Anonymní uživatel
180 příspěvků
13. 12. 2021   #12
-
0
-

A zde nastal další problém.

http://kod.djpw.cz/vzed

Ta hláška o prvním čísle se mi zasekne v nekonečné smyčce (pořád se opakuje). Jak to vyřešit? V podstatě šlo jen o to dát do programu schopnost repete... 

Nahlásit jako SPAM
IP: 178.255.168.–
13. 12. 2021   #13
-
0
-

Co je "tělo" cyklu? V tvém kódu je to jeden příkaz Console.WriteLine("Zadejte první číslo:"); Ten bude prováděn dokud bude ukončovací podmínka cyklu vracet true; (to bude vždy). Asi potřebuješ aby tělo cyklu bylo více příkazů, tedy blok kódu. Ten je uzavřen mezi složené závorky.  

while (podmínka)
{
   //vše co chceš dělat v cyklu
}
//co se má dělat po skončení cyklu

hu

Nahlásit jako SPAM
IP: 195.178.67.–
BDS+3
Věrný člen
13. 12. 2021   #14
-
0
-

#12 Montezo
nebo to lze udělat i takto: 

// definice a vše co se má vykonat před smyčkou
while(true)//nekonečná smyčka
{
   //vše co chceš dělat v cyklu

 if(!podmínka) break; //ukončí smyčku
}
//co se má dělat po skončení cyklu

míň přehledné, ale pro tvé řešení asi vhodnější

Nahlásit jako SPAM
IP: 94.113.253.–
W10 :)
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 39 hostů

Podobná vlákna

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý