Diskuze: Chybička
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
červené je
zapisText(zadavanyEmail.Text
Jo už to vidím, zapisText ti nic nevrací a potom se ptáš na návratovou hodnotu té metody v podmínce.
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
Ú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ě.
try
{
using (var sw = new StreamWriter("emaily.txt"))
{
sw.Write(zadavanyText);
zadavanyEmail.Text = "";
}
}
catch (IOException ex)
{
MessageBox.Show(ex.Message, "Error");
}
try
{
using (var sw = new StreamWriter("emaily.txt"))
sw.Write(zadavanyText);
}
catch (IOException ex)
{
MessageBox.Show(ex.Message, "Error");
}
finally
{
zadavanyEmail.Text = "";
}
Pardon...
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.");
}
To je jedno, všechna logika má být ve třídách, ne v obsluze formuláře.
Zobrazeno 11 zpráv z 11.