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

[c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :)

[es] :: .NET :: .NET Desktop razvoj :: [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :)

[ Pregleda: 3828 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.co.yu.



+2 Profil

icon [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :)30.08.2007. u 19:10 - pre 202 meseci
Poceo sam da vezbam da koristim klase kao polja i prvo pa zapelo :(
Code:

using System;

class Point
{
    private int x, y;
    public int p_X
    {
        get { return x; }
        set { x = value; }
    }
    public int p_Y
    {
        get { return y; }
        set { y = value; }
    }
}
class Pravougaonik
{
    Point GLevo, GDesno, DLevo, DDesno;     //gore = g
    private int gore, dole, levo, desno;

    public Pravougaonik(int gore, int dole, int levo, int desno)
    {
        this.gore = gore;
        this.dole = dole;
        this.levo = levo;
        this.desno = desno;

        GLevo.p_X = levo;
        GLevo.p_Y = gore;
        GDesno.p_X = desno;
        GDesno.p_Y = gore;
        DLevo.p_X = levo;
        DLevo.p_Y = dole;
        DDesno.p_X = desno;
        DDesno.p_Y = dole;
    }

    public Point p_GLevo
    {
        get { return GLevo; }
        set { GLevo = value; }
    }
    public Point p_GDesno
    {
        get { return GDesno; }
        set { GDesno = value; }
    }
    public Point p_DLevo
    {
        get { return DLevo ; }
        set { DLevo = value; }
    }
    public Point p_DDesno
    {
        get { return DDesno; }
        set { DDesno = value; }
    }

    public int IzracunajPovrsinu()
    {
        int duzina, sirina;
        duzina = desno - levo;
        sirina = gore - dole;
        return (duzina * sirina);
    }
}
public class Program
{
    static void Main()
    {
        Pravougaonik p1 = new Pravougaonik(100, 20, 50, 80);
        int m_Povrsina = p1.IzracunajPovrsinu();

        Console.WriteLine("P = {0}", m_Povrsina);
        Console.WriteLine("X koordinata gornjeg levog ugla je: {0}", p1.p_GLevo);
    }
}
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
83.209.23.*



+2 Profil

icon Re: [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :)30.08.2007. u 19:42 - pre 202 meseci
Nisi inicijalizovao Point-e u klasi Pravougaonik, a pokusavas da promenis X i Y.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

maksvel

Član broj: 107376
Poruke: 2417

Jabber: maksvel
Sajt: maksvel.in.rs


+161 Profil

icon Re: [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :)30.08.2007. u 19:43 - pre 202 meseci
Hm, čini se da si dodelio vrednost svojstvu objekta GLevo (koje je i samo objekat), koji si samo deklarisao, a nisi napravio objekat sa new. Point GLevo = new Point();
Ih, preteče me Pharos
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.co.yu.



+2 Profil

icon Re: [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :)30.08.2007. u 20:11 - pre 202 meseci
Sace da bude kao u skoli znao sam al nisam se javio :)
Code:

Point GLevo = new Point();
    Point GDesno = new Point();
    Point DLevo = new Point();
    Point DDesno = new Point();     //gore = g
    private int gore, dole, levo, desno;

Ovo je ispravno sada i program mi radi ali, ja nisam hteo ovako da stavim jer sam naravno mislio da je ovo lose jer cu da uzmem dosta memorije sa toliko instanci.
Cesto imam ovakve tripove ne znam kada treba da instanciram objekat. Stalno se plasim da GC nece moci da pocisti iza mene :)
Molio bih nekoga ko ima neki link ka nekom tutorijalu sa jos nekim objasnjenjima koriscenja klasa kao polja?
Hvala
 
Odgovor na temu

Laki123

Član broj: 16706
Poruke: 98
*.kalik.info.



+4 Profil

icon Re: [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :)22.10.2007. u 15:24 - pre 201 meseci
Ovo je dobar primer za upotrebu struktura, kada imaš neke koordinate, najbolje je koristiti strukturu. Znači, umesto klase Point neka to bude struktura.
Inače program ti ima grešku u delu gde treba da ispiše koordinatu X, treba da bude:
Code:
Console.WriteLine("X koordinata gornjeg levog ugla je: {0}-{1}", p1.p_GLevo.p_X, p1.p_GLevo.p_Y);
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :)

[ Pregleda: 3828 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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