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

ASP.NET Discussion :

Passer un type en parametre


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut Passer un type en parametre
    Bonjour,

    J'aimerais savoir s'il était possible de passer un type en paramètre de méthode ?

    J'ai une structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
            public struct PARAM
            {
                public string champ;
                public string value;
                public string type;
     
     
                public PARAM(string _champ, string _value, string _type)
                {
                    champ = _champ;
                    value = _value;
                    type = _type;
     
                }
            }
    mais je voudrais que ma variable type contienne un type (int, string, .... )

    Comment faire ? j'ai regardé sur le net mais pas grand chose, j'ai également cherché au niveau du System.Type mais rien de concluent.

    Quelqu'un aurait-il une idée.

    Merci d'avance

    PS : Je suis sur visual 2008 framework 3.5

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    Salut,

    Tu peux passer un type via System.Type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void methode(Type aType)
    {
     ....
    }
    et pour l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    methode(typeof(<type>));
     
    exemples : typeof(int) , typeof(string) ...
    tu trouveras la doc sur msdn : http://msdn.microsoft.com/fr-fr/libr...fs(VS.80).aspx

    Mamat.

  3. #3
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    OK merci,

    Maintenant j'ai un autre problème du coup, je voudrais cast en fonction du type en question. Mais le compilateur me dit
    Erreur 12 Le type ou le nom d'espace de noms '_param' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?) C:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2008\Projects\MimbeLo_App\WebApplication1\rpt\Edition.aspx.cs 32 71 MimbeLo
    L'endroit en question est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _report_document.SetParameterValue(_param.champ, (_param.type)_param.value);
    Voila le reste du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                  ReportDocument _report_document = new ReportDocument();
     
                    _report_document.FileName = _rpt.chemin;
                    foreach (REPORT.PARAM _param in _rpt.Params)
                    {
                        _report_document.SetParameterValue(_param.champ, (_param.type)_param.value);                   
                    }
    Pourquoi ne reconnait-il pas ma variable ? Comment y remédier ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    Salut,
    tu peux essayer ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                object t;
                t = "2";
                Type monType = typeof(int);
    
                t = Convert.ChangeType(t, monType);
    T contiendra ta valeur et sera du type spécifié.(Tu remarqueras que la valeur de retour sera toujours un object mais le type qui te sera rendu par un t.getType() aura changer).

    Cependant, si je ne me trompe pas, ta fonction attend un object en second paramètre, tu n'as pas besoin de le caster...

    Mamat.

  5. #5
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Merci beaucoup c'est nikel

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    N'hésite pas à passer le topic a résolu

    Mamat.

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 25/01/2006, 07h29
  2. [C#]Passer une date en paramètre dans Crystal Report
    Par choupinette dans le forum ASP.NET
    Réponses: 5
    Dernier message: 09/08/2005, 09h59
  3. Réponses: 9
    Dernier message: 22/07/2005, 16h10
  4. Passer un tableau en parametre dans une fonction js
    Par hellmaster78 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/06/2005, 14h35
  5. Passer une séquence en parametre
    Par djousss dans le forum CORBA
    Réponses: 2
    Dernier message: 02/12/2003, 22h39

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