NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Neaktivní uživatel:24.9.2012 20:18

takže...mám

public void zapisText(string zadavanyText)
        {
            if (zadavanyText != "")
            {
                using (StreamWriter sw = new StreamWriter(@"emaily.txt"))
                {
                    sw.WriteLine(zadavanyText);
                    zadavanyEmail.Text = "";
                }
            }
            else
            {
                MessageBox.Show("Není zadán žádný text !", "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }

        private void pridej_button_Click(object sender, EventArgs e)
        {
            if (zapisText(zadavanyEmail.Text))
            {
                MessageBox.Show("Zapsáno !");
            }

        }

A error
Error 1 Cannot implicitly convert type 'void' to 'bool' D:\projekty-programy\---------------\-----------\Form1.cs 38 17 SeznamEmailu

Odpovědět
24.9.2012 20:18
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:24.9.2012 20:19

červené je
zapisText(zada­vanyEmail.Text

Nahoru Odpovědět
24.9.2012 20:19
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:24.9.2012 20:24

Jo už to vidím, zapisText ti nic nevrací a potom se ptáš na návratovou hodnotu té metody v podmínce.

Nahoru Odpovědět
24.9.2012 20:24
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:24.9.2012 20:25

No tak co s tím ? :D

Nahoru Odpovědět
24.9.2012 20:25
Neaktivní uživatelský účet
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:24.9.2012 20:26

Já chci udělat jako jestli se to zapíše tak ať to vyhodí MessageBox pak tam ještě přidat else a messageBox s errorem

Nahoru Odpovědět
24.9.2012 20:26
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:24.9.2012 20:29

Úpřímně smazat a napsat znovu, protože to nedává smysl. Máš logiku a prezentaci spojenou dohromady, to je prasekód. Navíc nejsou ošetřené výjimky. Ale to by bylo asi na dýl. Měl by ses podívat do tutoriálů, jak se toto řeší.

Abys opravil tu chybu, musí ta metoda něco vracet, pokud chceš jen dál bastlit, změň nahoře void na bool a pomocí return vracej true když se to povede a false když ne. Ale je to špatně.

Nahoru Odpovědět
24.9.2012 20:29
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:24.9.2012 20:50
try
{
    using (var sw = new StreamWriter("emaily.txt"))
    {
        sw.Write(zadavanyText);
        zadavanyEmail.Text = "";
    }
}
catch (IOException ex)
{
    MessageBox.Show(ex.Message, "Error");
}
Editováno 24.9.2012 20:52
 
Nahoru Odpovědět
24.9.2012 20:50
Avatar
matesax
Tvůrce
Avatar
Odpovídá na matesax
matesax:24.9.2012 20:57
try
{
    using (var sw = new StreamWriter("emaily.txt"))
        sw.Write(zadavanyText);
}
catch (IOException ex)
{
    MessageBox.Show(ex.Message, "Error");
}
finally
{
    zadavanyEmail.Text = "";
}

Pardon...

Editováno 24.9.2012 20:58
 
Nahoru Odpovědět
24.9.2012 20:57
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:24.9.2012 21:09

Ten MessageBox a načítání by vůbec nemělo být v 1 třídě. Měl bys logiku oddělit do samostatné třídy a ve formu mít jen něco jako:

try
{
   emailManager.Nacti();
}
catch
{
   MessageBox.Show("Nepodařilo se načíst emaily.");
}
Nahoru Odpovědět
24.9.2012 21:09
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:25.9.2012 19:01

nechci načítat chci jen vkládát ;)

Nahoru Odpovědět
25.9.2012 19:01
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:25.9.2012 19:35

To je jedno, všechna logika má být ve třídách, ne v obsluze formuláře.

Nahoru Odpovědět
25.9.2012 19:35
New kid back on the block with a R.I.P
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 11 zpráv z 11.