Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

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

  • 4 odgovora
  • 5.452 pregleda

Najnovija ↓

[c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :) 30.08.2007. u 20:10 · pre 233 meseca #1
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);
    }
}
Re: [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :) 30.08.2007. u 21:11 · pre 233 meseca #4
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
Re: [c#] Zasto dobijam Null Reference Exception - i kako da je ne dobijam :) 22.10.2007. u 16:24 · pre 231 mesec #5
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);
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme