[ v.marko @ 20.09.2004. 13:58 ] @
Zdravo svima.
Imam jedno pitanje ;)

Ako zelim da definisem metodu koja ce kao argument sadrzati odredjenu klasu(ne objekat), a zatim metoda kreira objekat tipa prosledjenog kroz argument, kako se to radi?

Konkretno, neka bude metoda:

Code:

public void KreirajObjekat(klasa)
{
     klasa objekat = new klasa();
}


nadam se da sam se izrazio na pravi nacin
pomoc?
[ Java Beograd @ 20.09.2004. 14:19 ] @
Nisi se bas najbolje 'odrazio'. Ali mislim da znam sta ti je potrebno. ( Naravno, mozda i gresim.) To se u Javi zove 'reflection', ne znam kako se zove u C# ali, koliko znam i C# ima to isto ili slicno.


Dakle, ti bi da instanciras objekat, ali ne znas unapred koje klase objekat. Nego, na primer ime klase se procita ili dobije odnekud. U Javi bi to ovako bilo:
Code:

String imeKlaseKojeSamOdnekudDobio;

Class klasa = Class.forName(imeKlaseKojeSamOdnekudDobio);
Object obj = klasa.newInstance();


I jos, ako se moze pretpostaviti da ipak znas koje ce fele biti klasa, ostaje ti da cast-ujes i onda je koristis normalno.
Code:

...
Programer prog = (Programer) obj;
prog.radiDoZore();

...


Zasto ti pisem u Javi ? Zato sto je sve jako, jako slicno. Samo malkice procackaj dokumentaciju ili Google i sve ces naci.

( Bas sam se raspisao, a mozda ti sve ovo i ne treba. )


[ ZokiR @ 21.09.2004. 03:46 ] @
Activator.CreateInstance(typeof(klasa)) radi upravo to što ti treba.
[ EXeX @ 24.09.2004. 21:51 ] @
Rjesenje je u polimorfizmu.