Je veux demander le différent entre EventHandler
et EventHandler<T>
.EventHandler <T> et EventHandler
Auparavant, j'ai implémenté un EventHandler
, avec un EventArgs personnalisé qui peut être passé à la page parente à partir du contrôle utilisateur.
Je pensais que j'ai besoin d'appliquer EventHandler<T>
, mais il peut être mis en œuvre en utilisant EventHandler
. (en fait il y a erreur bizarre quand j'essaye d'appliquer EventHandler<T>
, le programme est travaillé mais l'erreur est montrée dans l'IDE que je n'ai pas pu résoudre [C# Custom EventHandler])
Ainsi, je veux savoir dans quelle situation j'ai besoin appliquer EventHandler <T>
?
public event EventHandler AppendProcess;
public event EventHandler<MyEventArg> AppendProcess;
--- Mise à jour --- voilà comment j'invoque l'événement dans le contrôle de l'utilisateur (comme je l'ai dit, je peux passer à la page objet parent en faisant cela (même si je ne sais pas si ce est correct de le faire)
if (AppendProcess == null) { }
else
AppendProcess(this, new Common.WinLose_ProgressStage(Common.WinLose_SP_Parameter.upper, displayLevel + 1,
(int)Common.WinLose_Level.lvChild4, thename, refundratio,
selfproportion, -1, -1, loadlevel, isPlayer, betsource, gamecategory, false));
avec '' EventHandler vous pouvez passer paramètre de type 'T' aux abonnés. avec 'EventHandler' vous ne pouvez pas passer de paramètres (c'est-à-dire juste' EventArgs.Empty' qui est inutile) –
@ M.kazemAkhgary Vous pouvez (et l'OP) passer dans des classes concrètes dérivées de 'EventArgs', et vous pouvez (et le OP fait) cast le paramètre au type de classe concret à l'intérieur du gestionnaire. Je ne le recommande certainement pas, mais dire "vous ne pouvez pas" après l'OP a déjà montré que vous ne pouvez pas aider. – hvd