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

Framework .NET Discussion :

Résoudre ambiguité de signature sur type valeur (C++ managed)


Sujet :

Framework .NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut Résoudre ambiguité de signature sur type valeur (C++ managed)
    Bonjour,

    Supposons la classe

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ref class A
    {
      public:
        void f(System::Boolean b);
    };
    Un appel à A::typeid->GetMethod(f, array<System::Boolean>^ = {bool::typeid}) trouve f.

    Mais si je modifie A ainsi :
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ref class A
    {
      public:
        void f(System::Boolean b);
        void f(System::Boolean^ b); //surcharge ok
    };

    Alors il y a une ambiguité dans GetMethod(f, array<System::Boolean>^ = {bool::typeid}).
    Comment modifier le GetMethod() pour pouvoir choisir l'une ou l'autre surcharge ?

    +
    Chacha

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Dans votre cas, il vous faudra utiliser cette surcharge de GetMethod :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public:
    virtual MethodInfo^ GetMethod (
    	String^ name, 
    	BindingFlags bindingAttr, 
    	Binder^ binder, 
    	array<Type^>^ types, 
    	array<ParameterModifier>^ modifiers
    )
    Mais, en outre, il vous faudra ecrire un custom binder de reflection (parce que le binder par defaut, pour GetMethod, ignore les ParameterModifiers)

    Voir l'exemple de la doc .NET FX, classe System.Reflection.Binder

    ms-help://MS.NETFramework.v20.en/cpref10/html/T_System_Reflection_Binder.htm

    'HTH

    Citation Envoyé par pierre.chatelier Voir le message
    Bonjour,

    Supposons la classe

    ref class A
    {
    public:
    void f(System::Boolean b);
    };

    Un appel à A::typeid->GetMethod(f, array<System::Boolean>^ = {bool::typeid}) trouve f.

    Mais si je modifie A ainsi :
    ref class A
    {
    public:
    void f(System::Boolean b);
    void f(System::Boolean^ b); //surcharge ok
    };


    Alors il y a une ambiguité dans GetMethod(f, array<System::Boolean>^ = {bool::typeid}).
    Comment modifier le GetMethod() pour pouvoir choisir l'une ou l'autre surcharge ?

    +
    Chacha

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/03/2013, 21h08
  2. Question sur les valeur min et max des types ?
    Par doommick31 dans le forum Débuter
    Réponses: 4
    Dernier message: 13/04/2010, 17h35
  3. Réponses: 2
    Dernier message: 12/12/2009, 10h50
  4. [Math]Problème troncage ou arrondi sur des valeurs
    Par Carrel dans le forum Général Java
    Réponses: 6
    Dernier message: 07/10/2009, 15h11
  5. [FileMaker 6] Questions urgente sur type de base de donnee
    Par LAPLACE dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 06/09/2004, 17h39

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