Dzień dobry.
Odkryłem że sposób który za chwilę podam jest przyjemniejszy do użytku (na początku) ale nie wiem czy jest rzeczywiście dobry i czy tak się powinno robić.
using System;
using System.Text;
using System.IO;
using System.Threading;
namespace TestMode
{
public class MainClass
{
public static void wypisz()
{
FileStream plik = new FileStream ("tek.txt", FileMode.Open);
byte[] array = new byte[1024];
int i = plik.Read (array,0,1024);
Console.WriteLine (Encoding.UTF8.GetString (array,0,i));
plik.Close ();
Console.ReadKey ();
}
public static void wpisz()
{
FileStream plik = new FileStream ("tek.txt", FileMode.Append);
string tek = Console.ReadLine ();
byte[] array = Encoding.UTF8.GetBytes (tek);
plik.Write (array,0,array.Length);
plik.Close ();
Console.ReadKey ();
}
public static void Main ()
{
Console.WriteLine("Witaj. 1 aby wpisać, 2 aby wypisać na ekran");
int wynik = Convert.ToInt32(Console.ReadLine ());
switch (wynik) {
case 1:
new Thread (new ThreadStart (wpisz)).Start ();
break;
case 2:
new Thread (new ThreadStart (wypisz)).Start ();
break;
default:
break;
} return;
}
}
}
Aktualnie kod jest bezsensowy ponieważ niektóre rzeczy się powtarzają i lepszym pomysłem jest umieszczeniem wszystko w main.
Ale to był tylko przykład.
Chodzi mi głównie o dużych programach gdzie niektóre schematy się powtarzają.
np. mamy grę gdzie są 2 stany - jeden np. na statku kosmicznym, drugi np. w kosmosie.
Oba te stany są całkowite różne i mają inne funkcje.
A ten pomysł który wyżej podałem pokazałem w jaki stan przejść.
Co o tym myślicie?
Z ciekawości chciałem zrobić prostą grę konsolową
ale problem się okazał taki że main jest zbyt duży mimo że przeniosłem znaczną część w inne funkcje.
A uważam że ten sposób nie o wiele czytelniejszy ale ma kilka błędów:
Zmienne - rozwiązanie:
1.zrobić jedno duże pudełko na zmienne i przekazywać je przez te "stany".
2.Zmienne globalne. (Prosta klasa statyczna ze zmiennymi np. Dane.zmienna;)
W jaki sposób to rozwiązać?
Sam nie wiem co lepsze.
Ta "gra" jest obiektowa w konsoli.
Pozdrawiam.