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

Banalan problem u C#

[es] :: .NET :: .NET Desktop razvoj :: Banalan problem u C#

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ramirez

Član broj: 13160
Poruke: 318
*.ptt.yu.



Profil

icon Banalan problem u C#22.05.2005. u 18:36 - pre 230 meseci
Postoji klasa u kojoj se nalaze dve promenljive i dve metode... i naravno main()... ja ovu klasu ne koristim (znaci nista nasledjivanje, nista pravljenje objekata njenog tipa), ona je tu samo zato sto C# kaze da ona mora da postoji... Ja iz main() zelim da pozivam svoje dve metode bez da pravim objekat te klase... on mi kaze da metode moraju a budu static... ok nema problema... sada ja metode mogu da pozovem ali...

Gde i kako da inicijalizujem svoje dve promenljive? Konstruktor se ne poziva? Meni je sve ovo vrlo konfuzno... ako ja imam klasu unutar koje postoji konstruktor i main()... meni je logicno da kada pokrenem taj program jedan objekat tipa te klase bude napravljen. Tom prilikom po mojoj logici bi trebao da se pozove konstruktor te klase a zatim da pocne da se izvrsava main().

Ono sto ja zelim je nesto sto je u C/C++ tako lako... pre main() deklarisem svoje funkcije i onda ih lepo pozivam bez da pravim neke objekte, a dve promenljive koje imam su globalne za taj program.

Ja ovaj problem mogu da resim tako sto cu te metode i promenljive staviti u jednu klasu a main() u drugu... i onda cu u main() napraviti jedan objekat prve klase... ali mi to zvuci toliko glupo...
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
212.62.55.*



Profil

icon Re: Banalan problem u C#22.05.2005. u 23:58 - pre 230 meseci
Main je (mora biti) staticka funkcija i kao takva ne pripada nijednoj instanci klase vec je na neki nacin "usluga" klase i kao takva moze biti pozvana bez instanciranja ijednog objekta te klase (bice da ti malo nedostaju osnove OOP-a, procesljaj to malo...).
E sad, u Frameworku postoji nesto sto se zove staticki konstruktor i njegova namena je da unutar njega inicijalizujes staticke promenljive clanice klase (sto mozes uraditi i inline...). Inicijalizuj te tvoje promenljive u statickom konstruktoru ili inline i koristi ih u statickim funkcijama...
Nemoj zaboraviti da cpp i nije pravi OO jezik (a koji i jeste... ) i nemoj da povlacis velike paralele izmedju ova dva...
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9514
82.117.206.*



+10255 Profil

icon Re: Banalan problem u C#23.05.2005. u 07:51 - pre 230 meseci
Code:
public class MojaKlasa {

    private String mojaPromenljiva;

    public MojaKlasa() {
        // ovde radim sve sto posten svet radi u konstruktoru
        mojaPromenljiva = "Vajfert pivo, ohladjeno ! ";

    }
    private String uradiNesto() {
         // evo radim nesto
         return "ono sta sam uradio";
    }

    public static void main(String[] arguments) {
        new MojaKlasa();
    }
}




Ramirez: Ja iz main() zelim da pozivam svoje dve metode bez da pravim objekat te klase... on mi kaze da metode moraju a budu static...

Logično da moraju biti static, jer je i main static, tj. poziva se bez instanciranja objekta klase.



Ramirez: Konstruktor se ne poziva? Meni je sve ovo vrlo konfuzno... meni je logicno da kada pokrenem taj program jedan objekat tipa te klase bude napravljen. Tom prilikom po mojoj logici bi trebao da se pozove konstruktor te klase a zatim da pocne da se izvrsava main().

Konstruktor se ne poziva. Ti ga po želji možeš ( a i ne moraš ) pozvati iz main(). Dakle, biće pozvan samo main(), sve ostalo je na tebi.



Ramirez: ... Ono sto ja zelim je nesto sto je u C/C++ tako lako... pre main() deklarisem svoje funkcije i onda ih lepo pozivam bez da pravim neke objekte, a dve promenljive koje imam su globalne za taj program.

Ti si zapravo žrtva Mikrosoftove laži da je C# mešavina Jave i C++, a C# u stvari je 95% Java. Dakle, pre svega zaboravi termine "program", "globalne promenljive" i sve tome slično ...


OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Banalan problem u C#

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

Postavi temu Odgovori

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