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 :

Convert.objet vers tableau Double ou Short en fonct.type objet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Par défaut Convert.objet vers tableau Double ou Short en fonct.type objet
    Bonjour,

    j'ai 1 fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     static int MaFonctionShort(objet monTb)
    short[] tab = (short[])monTb;
    ...travail sur tab
    et une 2ème fonction qui fait la même chose sauf que l'objet est de type double au lieu de Short.

    est-il possible de créer un tableau "tab" du type de "monTb" afin d'avoir 1 fonction unique.
    Je sais récuperer le type de l'objet avec monTb.GetType() mais je ne sais pas créer un tableau de ce type et y récuperer le contenu de "monTb".
    J'ai regardé du côté de typeof mais je ne m'en sort pas (je suis débutant).

    merci pour votre aide.

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Connais-tu les generics ? Elles permettent d'écrire des méthodes qui peuvent s'appliquer à tout type.

    Dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static int TaFonction<T>(object monTB) // T est un type : short, string, Control, ...
    {
      T[] tab = (T[])monTb;
    ...
    }
     
    int machin = taFonction<short>(untruc);

  3. #3
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Connais-tu les generics ? Elles permettent d'écrire des méthodes qui peuvent s'appliquer à tout type.

    Dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static int TaFonction<T>(object monTB) // T est un type : short, string, Control, ...
    {
      T[] tab = (T[])monTb;
    ...
    }
     
    int machin = taFonction<short>(untruc);
    Euh tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static int TaFonction<T>(T[] monTB)

  4. #4
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Par défaut
    il semble que ce soit la bonne méthode mais j'ai 1 erreur sur la suite...

    if (tab[i] == 0)...provoque l'erreur "l'opérateur '==' ne peut pas être appliqué aux opérandes de type 'T' et 'int'

    merci pour votre aide.

  5. #5
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Ta fonction n'est faite que pour manipuler des types numériques ? Si c'est le cas, tu peux remplacer "0" par default(T).

    Petite explication de l'erreur que tu vois : la fonction générique que l'on t'a présentée peut fonctionner avec toute classe ou struct. 0 n'est comparable qu'aux types numériques : le compilore fuse donc.

    default(T) est la valeur par défaut du type T : dans le cas de int, c'est 0, pour les doubles, c'est 0.0, etc.

  6. #6
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Par défaut
    je commence à comprendre...

    les 2 types que j'attends sont Double ou short...
    Je veut passer en revue ts les éléments du tb et compter combien sont <>0.
    j'ai essayé
    if (tab[pos] == default(T)) mais ça j'ai l'erreur "l'opérateur == ne peut pas être appliqué aux opérandes de type 'T'

    une dernière touche d'aide pour en finir sera la bienvenue...

    est-ce que je pourrais tester avec default de tableaux de Date ?

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

Discussions similaires

  1. Connaitre type objet, héritage tableau
    Par zeracoa dans le forum C++/CLI
    Réponses: 1
    Dernier message: 06/04/2013, 22h06
  2. convertion contour vers tableau ordonné ?
    Par shokotoreiki dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 11/05/2011, 18h59
  3. Récuperer objet dans tableau en fonction du champ d'un objet
    Par mowegan dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/10/2010, 17h04
  4. convertir un objet vers un tableau de byte
    Par zerocoolyoussef dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 19/02/2008, 23h11
  5. convertion pointeur vers tableau
    Par gdpasmini dans le forum C++
    Réponses: 2
    Dernier message: 30/03/2006, 00h34

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