PDA

Visualizza versione completa : [C#] Evento non lanciato


realtebo
12-03-2008, 11.18.00
Ho dichiarato in una mia classe l'evento seguente:

public delegate void EventoSchema(string Schema);

reso esplicito poi da

public event EventoSchema SchemaUpdated;

Nel codice vado a lanciare questo evento scrivendo:

SchemaUpdated ( "bla bla bla");

ma ottengo una eccezione a runtime:


System.NullReferenceException was unhandled
Message="Riferimento a un oggetto non impostato su un'istanza di oggetto."
Source="GameEngine"
StackTrace:
in GameEngine.Partita.ImpostaSequenza(String NuovaMossa) in D:\C# 2008 Projects\IntelliTris 2009\GameEngine\Partita.cs:riga 261
in GameEngine.Partita.Avvia() in D:\C# 2008 Projects\IntelliTris 2009\GameEngine\Partita.cs:riga 149
in GameEngine.Partita..ctor(String ilNomeA, String ilNomeB, EnumSimboliGioc ilSimboloA, EnumTipoGioc ilTipoA, EnumTipoGioc ilTipoB, EnumQualeGioc ilPrecedenteVincitore) in D:\C# 2008 Projects\IntelliTris 2009\GameEngine\Partita.cs:riga 130
in IntelliTris_2009.Principale.mnuNuova_Click(Object sender, EventArgs e) in D:\C# 2008 Projects\IntelliTris 2009\IntelliTris 2009\Principale.cs:riga 46
in System.Windows.Forms.ToolStripItem.RaiseEvent(Obje ct key, EventArgs e)
in System.Windows.Forms.ToolStripMenuItem.OnClick(Eve ntArgs e)
in System.Windows.Forms.ToolStripItem.HandleClick(Eve ntArgs e)
in System.Windows.Forms.ToolStripItem.HandleMouseUp(M ouseEventArgs e)
in System.Windows.Forms.ToolStripItem.FireEventIntera ctive(EventArgs e, ToolStripItemEventType met)
in System.Windows.Forms.ToolStripItem.FireEvent(Event Args e, ToolStripItemEventType met)
in System.Windows.Forms.ToolStrip.OnMouseUp(MouseEven tArgs mea)
in System.Windows.Forms.ToolStripDropDown.OnMouseUp(M ouseEventArgs mea)
in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
in System.Windows.Forms.Control.WndProc(Message& m)
in System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
in System.Windows.Forms.ToolStrip.WndProc(Message& m)
in System.Windows.Forms.ToolStripDropDown.WndProc(Mes sage& m)
in System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
in System.Windows.Forms.NativeWindow.DebuggableCallba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
in System.Windows.Forms.UnsafeNativeMethods.DispatchM essageW(MSG& msg)
in System.Windows.Forms.Application.ComponentManager. System.Windows.Forms.UnsafeNativeMethods.IMsoCompo nentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
in System.Windows.Forms.Application.ThreadContext.Run MessageLoopInner(Int32 reason, ApplicationContext context)
in System.Windows.Forms.Application.ThreadContext.Run MessageLoop(Int32 reason, ApplicationContext context)
in System.Windows.Forms.Application.Run(Form mainForm)
in IntelliTris_2009.Program.Main() in D:\C# 2008 Projects\IntelliTris 2009\IntelliTris 2009\Program.cs:riga 18
in System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
in System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
in Microsoft.VisualStudio.HostingProcess.HostProc.Run UsersAssembly()
in System.Threading.ThreadHelper.ThreadStart_Context( Object state)
in System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state)
in System.Threading.ThreadHelper.ThreadStart()
InnerException:



Tenete conto che la lunga sequenza di oggetti č dovuta al fatto che questo evento č in un componente che si chiama GameEngine ed una classe Partita,

Inoltre tutto ciņ si scatena perchč l'Applicazione principale dal menuItem 'Nuova partita' crea con successo l'istanza della classe, poi la classe fa i suoi ciappini, lancia altri eventi senza problemi, quindi dovrebbe informare con l'evento in questione che lo schema č stato aggiornato.

Perņ mi da quell'eccezione e non capisco !