Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

vjek objekta ( niza )

[es] :: .NET :: vjek objekta ( niza )

[ Pregleda: 800 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dontoo

Član broj: 249815
Poruke: 40
*.adsl.net.t-com.hr.



+1 Profil

icon vjek objekta ( niza )14.03.2010. u 12:14 - pre 171 meseci
Recimo da su ovo klase Program i Engine:

Code:
class Program
{
    static void Main()
    {
        string x;
        Engine obj = new Engine();
        while ( (x = console.ReadLine ()) != "Quit" )
        {
            switch ( x )
            {
                case "NovaIgra":
                    obj.NovaIgra( argument);
                    break;
                case "Undo":
                    obj.Undo();
                    break
                case "Score":
                   obj.Score();
                    break;
             }
        }
    }
}

class Engine
{
     int[] ploca_za_igru;
     void NovaIgra( int argument)
     {
          if ( argument == 5 )
              ploca_za igru = new int[5];
          else if ( argument == 10 )
              ploca_za_igru = new int [10];
           ...
           ....
     }
}


Evo što je pitanje. Svaki put kad korisnik odabere NovaIgra() kreirat će se niz koji predstavlja igračku ploču xy veličine. Što će se desiti sa oni starim nizom koji mi više ne treba? Dali će njega garbage collector maknuti iz memorije? Ne želim imati 200 nizova u memoriji svaki put kad korisnik pokrene NovaIgra().


[Ovu poruku je menjao mmix dana 14.03.2010. u 16:17 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: vjek objekta ( niza )14.03.2010. u 16:29 - pre 171 meseci
Obrisace ga GC, ali bih ti ja svejedno prepoporucio da koristis malo izmenjeni mehanizam. Instanca tipa Engine predstavlja jednu igru, ako ti igru pokrenes ponovo sve reference na Engine ce dobiti novu igru sto moze napraviti problem ako postoji dve ili vise referenci na nju. Enakpsuliraj celu jednu igru u jednu instancu i ako pokreces novu igru kreiraj novu instancu umesto sto rekreiras tablu u istoj instanci. Ako je pak zahtev da moze postojati samo jedna partija onda taj enkapsiluranu klasu igre upakuj u singleton pattern. Nisi naravno uradio nista pogresno, ali su ovo neki saveti da ti kod bude organizovaniji i lakse prosiriv.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

dontoo

Član broj: 249815
Poruke: 40
*.adsl.net.t-com.hr.



+1 Profil

icon Re: vjek objekta ( niza )15.03.2010. u 09:50 - pre 171 meseci
Kužim, samo pravim novi objekt klase za novu igru.
 
Odgovor na temu

[es] :: .NET :: vjek objekta ( niza )

[ Pregleda: 800 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.