C# - NullReferenceException

Dumel
Użytkownik
Użytkownik
Posty: 2000
Rejestracja: 19 lut 2008, o 17:35
Płeć: Mężczyzna
Lokalizacja: Stare Pole/Kraków
Podziękował: 60 razy
Pomógł: 202 razy

C# - NullReferenceException

Post autor: Dumel »

mam sobie delegata:

Kod: Zaznacz cały

public delegate void CellMovedFrom(int x, int y, SandSimulation.Direction dir, System.Drawing.Color color);
i zdarzenie

Kod: Zaznacz cały

public event SandSimulation.CellMovedFrom CellMoved;
obce nazwy tyczą się interfejsu ktory implementuje moja klasa i odpowiedniej przestrzeni nazw
i teraz mam błąd wykonania w takim miejscu:

Kod: Zaznacz cały

Color kolor = new Color();
kolor=Color.FromArgb(255, b[0], b[1], b[2]);
this.CellMoved(x, y, SandSimulation.Direction.EDown, kolor);  
x,y to zmienne typu int.

debugger pokazuje:
NullReferenceException was unhandled
Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
jak to naprawić?
Awatar użytkownika
argv
Użytkownik
Użytkownik
Posty: 569
Rejestracja: 27 maja 2009, o 01:27
Płeć: Mężczyzna
Podziękował: 51 razy
Pomógł: 66 razy

C# - NullReferenceException

Post autor: argv »

Prawdopodobnie w momencie wywołania pod zdarzenie nie jest nic podpięte.
Musisz podpiąć pod zdarzenie jakąś metodę zgodną z sygnaturą delegata:

Kod: Zaznacz cały

this.CellMoved += jakasMetoda;
Następnie przy wywołaniu zdarzenia musisz się upewnić że faktycznie coś zostało podpięte:

Kod: Zaznacz cały

private void Notify()
{
    if(this.CellMoved != null) {
         this.CellMoved(...);
    }
}
ODPOWIEDZ