"Napisz aplikację okienkową,w której tytuł i rozmiary okna będą wczytywane z pliku tekstowego o nazwie przekazanej jako argument wywołania. W przypadku niepodania nazwy pliku bądź wykrycia nieprawidłowego formatu danych powinny zostać zastosowane wartości domyślne"
Cześć. Jak oceniacie moje rozwiązanie? Czy dobrze używam try catch i czy to nic złego że konwertuje ewentualny null do int?
Mam do rozwiązania podobne zadanie, w którym z pliku wczytywana jest struktura menu jakie ma być w tym oknie i nie wiem jak się za to zabrać. Macie jakieś pomysły?
public class MyForm : Form
{
public MyForm(string tytul,int szerokosc,int wysokosc)
{
Width = szerokosc;
Height = wysokosc;
Text = tytul;
MainMenu mm = new MainMenu();
MenuItem m1 = new MenuItem();
MenuItem m11 = new MenuItem();
MenuItem m12 = new MenuItem();
MenuItem m13 = new MenuItem();
m1.Text = "Plik";
m11.Text = "Nowy";
m12.Text = "Otwórz";
m13.Text = "Opcje";
mm.MenuItems.Add(m1);
m1.MenuItems.Add(m11);
m1.MenuItems.Add(m12);
m1.MenuItems.Add(m13);
Menu = mm;
}
}
class Program
{
public static void Main(string[] args)
{
string tytul = "domyślny tytuł";
int szerokosc = 640;
int wysokosc = 480;
if(args.Length < 1)
{
Application.Run(new MyForm(tytul, szerokosc, wysokosc));
}
else
{
string plik = args[0];
StreamReader sr;
try
{
sr = new StreamReader(plik);
}
catch(Exception)
{
Console.WriteLine("nie udalo sie otworzyc pliku");
return;
}
tytul = sr.ReadLine();
string szerokosctekst = sr.ReadLine();// jeśli koniec pliku, zwraca null
string wysokosctekst = sr.ReadLine();
sr.Close();
try
{
szerokosc = Convert.ToInt32(szerokosctekst);//Convert.ToInt32(null) == 0
wysokosc = Convert.ToInt32(wysokosctekst);
}
catch (Exception)
{
szerokosc = 640;
wysokosc = 480;
}
if((szerokosc <= 0)||(wysokosc <= 0))
{
szerokosc = 640;
wysokosc = 480;
}
Application.Run(new MyForm(tytul, szerokosc, wysokosc));
}
}
}