IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[Plugins] Convertir une interface vers une classe qui hérite


Sujet :

C#

  1. #1
    Membre éprouvé
    Homme Profil pro
    Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique
    Inscrit en
    Décembre 2014
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 449
    Points : 991
    Points
    991
    Par défaut [Plugins] Convertir une interface vers une classe qui hérite
    Bonjour à tous,

    Je développe un plugin pour LaunchBox, et n'ayant jamais fait de plugin avant, même si j'ai pu contourner un problème (en faisant une boucle ou je passe chaque donnée dans une classe dans mon plugin) , j'aimerai comprendre un peu certaines choses.

    Actuellement avec une dll, je récupère des interfaces, IPlatform, IGame, etc...


    Et quand je veux récupérer par exemple toutes les données, je vais faire un getallXXX(), mais il me renvoie (par exemple) un IPlatform[] . Jusque là je me dis que dans les mécaniques c'est pour signifier le type que dans le langage passe ça du coup on sait avec quoi on bosse des deux cotés.

    Donc sans ma bidouille, je me fais une classe qui hérite de l'interface et ben si je l'appelle PlatformMaison, si je fais un PlatformMaison[] platforms =ProgrammePrincipal.GetAllPlatforms(); ça ne passe pas... Donc je me dis que via un cast, je vais régler le soucis, donc je me fais un "explicit operator PlatformMaison(IPlatform origPlat)" qui me signale une erreur CS0552... J'ai bien lu le tuto, qui parle de cela mais ça ne m'a pas plus avancé.

    cordialement.

  2. #2
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    C'est pas bien clair tout ça... Le peu que j'ai suivi ; tu reçois des IPlatform (dans un tableau) et tu veux t'en servir ; ben où est le problème ? récupère tes IPlatform et sers t'en directement c'est pas parce que c'est une interface que tu peux pas.
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique
    Inscrit en
    Décembre 2014
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 449
    Points : 991
    Points
    991
    Par défaut
    Non mais j'ai buggé en fait, je suis parti faire un tour pour ça que j'ai pas pu éditer, et j'ai vite vu plus clair.
    En fait comme j'ai appris en autodidacte y'a certaines choses que je n'ai jamais vu mais d'autres plus avancées que j'ai pu voir. Donc je me suis servis de ce que je sais que les génerics, et ça m'est apparu plus clair. Passer une interface en paramètre c'est une manière de typer un peu plus large, ce ne sont pas des interfaces que l'on transmet mais des classes qui implémentent cette interface, une garantie de patron en fait. Donc je n'ai pas à convertir. Je transmets des classes maisons qui implémentent, et dans la méthode je récupère un paramètre qui demande IPlatform, IGame , c'est pareil en fait... ça m'était jamais arrivé de passer des paramètres ainsi, et je ne crois pas que j'ai su que c'était possible d'ailleurs. Bref j'avais pris le problème à l'envers.

    merci en tout cas de m'avoir répondu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/07/2016, 16h49
  2. Router d'une interface vers une autre
    Par Michaël dans le forum Réseau
    Réponses: 2
    Dernier message: 27/01/2011, 21h22
  3. Garder une référence vers une variable d'une autre classe
    Par choupeo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/12/2007, 18h30
  4. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 13h39
  5. [VB.NET] Copie d'une table d'une DB vers une autre
    Par SergeF dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/11/2004, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo