CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C#] EventArgs utilité?

Ibadez38
Ibadez38
Niveau 47
29 avril 2023 à 16:05:15

Bonjour,

Je n'arrive pas à comprendre l'utilité de faire hériter une classe de la classe EventArgs pour transmettre des donnés via un deleguate de type event.

Qu'elle hérite ou non cela ne change rien au fonctionnement de mon programme.
Est-ce seulement pour la bonne pratique ou il se passe vraiment quelque chose sous le capot?

godrik
godrik
Niveau 30
29 avril 2023 à 21:47:32

tu passes comment des parametres par event si tu ne fais pas un objet qui herite de eventargs?

Ibadez38
Ibadez38
Niveau 47
30 avril 2023 à 08:26:36

En fait je viens de me rendre compte que c'est le formateur que je suis qui fait quelque chose d'inutile?

Il crée un objet qui hérite de EventArgs pour le passer en paramètre d'un deleguate de type Action et non d'un type EventHandler qui lui a besoin de deux paramètre, un qui est la source et l'autre qui est de type EventArgs.

C'est pour ca je vois pas trop l'utilité à mois que j'ai loupé un truc?

godrik
godrik
Niveau 30
30 avril 2023 à 14:50:03

Imagine que tu as deux boutons. Un qui avance de 5 secondes et un qui avance de 15 secondes.
TU n'ecris pas deux event handler different pour ces deux boutons.
Tu ecrit un event handler qui prends un parametre qui est mis en place a l'installation de l'event handler. Et ce parametre va indiquer de combien de temps il faut avancer.

Ibadez38
Ibadez38
Niveau 47
30 avril 2023 à 16:27:44

Ce que j'ai pas compris c'est pourquoi le formateur passe en paramètre de l'event de type action et non de type eventHandler un objet qui hérite d'eventArgs alors qu'il peut passer un objet de n'importe quelle type.

Pour l'event de type EventHandler tu es obligé de passer un objet de type eventArgs à défaut de null.

J'ai juste pas compris pourquoi il passait un objet eventArgs en paramètre d'un event Action qui lui peut prendre en paramètre des objets T.

godrik
godrik
Niveau 30
30 avril 2023 à 18:36:08

tu as du code a montrer pour essayer de comprendre?

Ibadez38
Ibadez38
Niveau 47
30 avril 2023 à 19:02:47

public class A
{
    public event Action<BEventArgs> OnAction
    public event EventHandler OnEventHandler;

    public void CallOnAction(BEventArgs bEventArgs)
    {
        OnAction?.Invoke(bEventArgs)
    }
    
   public void CallOnEventHandler(BEventArgs bEventArgs)
    {
        OnEventHandler?.Invoke(this, bEventArgs);
    }
}

public class BEventArgs : EventArgs
{
    public int Data1;
    public bool Data2;
}

Le delegate d'Action peut avoir n'importe quel objet en paramètre c'est pourquoi je me demandais si il y avait une utilité à lui passer un EventArgs?
Merci de ton aide.

Message édité le 30 avril 2023 à 19:07:03 par Ibadez38
godrik
godrik
Niveau 30
30 avril 2023 à 19:48:06

probablement parceque les parametres sont les memes pour les deux, il ne fait qu'un seul objet?

Ibadez38
Ibadez38
Niveau 47
30 avril 2023 à 19:53:25

Il n'utilise pas EventHandler, seulement l'Action.

J'ai mis EventHandler pour l'exemple.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment