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

WinDev Discussion :

Windev et classes génériques .NET [WD18]


Sujet :

WinDev

  1. #1
    Invité
    Invité(e)
    Par défaut Windev et classes génériques .NET
    Bonjour à tous,

    Vous pourrez peut-être répondre à ma question... Quand je met un post ainsi c'est que vraiment j'ai cherché dans le web avec tous les mots clés possibles et imaginables et que je n'ai strictement rien trouvé sur le sujet.

    Voici : est-ce que quelqu'un peut me dire si oui ou non il est possible d'instancier une classe .NET générique avec WinDev (comme par exemple "List<T>") et si oui comment faire?

    En effet, leur documentation n'indique pas si c'est possible ou pas et j'ai essayé énormément de choses sans succès : soit la vérification syntaxique échoue, soit l'exécution échoue...

  2. #2
    Membre habitué Avatar de elfasys
    Homme Profil pro
    Ingénieur automatismes industriels, conception et réalisation
    Inscrit en
    Octobre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur automatismes industriels, conception et réalisation
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 81
    Points : 144
    Points
    144
    Par défaut
    Bonjour

    As-tu vu l'exemple PCSoft inclus dans Windev ?

    C'est "WD Gestionnaire de tache DOTNET" (et je crois qu'il y en a d'autres)

    Je te dis cela parce que moi, je ne l'avais pas vu... mais il existe, et il y a de petites choses qui peuvent t’intéresser.
    Pourquoi faire simple quand on peut faire compliqué ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse elfasys. J'ai regardé attentivement dans l'exemple dont tu me parles mais je n'ai pas trouvé d'exemples d'utilisation de classes génériques dotnet.

    J'en avais déjà regardé, mais pas celui-ci.
    Bon je vais me farcir tous les exemples dotnet et je vous tiens informés.

    Mais c'est quand même fâcheux qu'il soit nécessaire d'aller dans des exemples pour trouver des informations qui auraient dues se trouver dans la doc...
    Dernière modification par Invité ; 06/11/2013 à 14h09.

  4. #4
    Invité
    Invité(e)
    Par défaut
    OK, j'ai regardé tous les exemples (le tour était vite fait) et il s'avère que pc soft n'en fournit aucun avec l'utilisation de classe générique.

    Donc problème non résolu...

    Quelqu'un a-t-il une information à ce sujet?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bon, j'ai envoyé un Requêthost à ce sujet, et lorsqu'ils m'auront répondu, je vous tiendrai informé pour ceux qui sont intéressés...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bon, alors pour ceux qui sont intéressés par ce sujet, j'ai obtenu une réponse de PC soft.

    En fait, pour utiliser des génériques tels que "List<System.Int32>" par exemple, il faut que "List<System.Int32>" soit déclaré dans un assemblage qu'on a fait nous-même et qui est déjà importé.

    Pour résumer, WinDev ne gère pas directement l'instanciation d'un générique mais indirectement.

    Par exemple, si dans les assemblages .NET j'importe uniquement mscorlib et System, je ne peux pas utiliser List<Int32> dans windev. Mais si j'importe un assemblage que j'ai fait qui utilise List<Int32> alors je peux utiliser List<Int32> dans WinDev.

    C'est assez étrange mais on peut considérer que WinDev gère les génériques en quelque sorte, mais il fallait connaître le truc car ils n'en parlent pas du tout dans la doc...

  7. #7
    Invité
    Invité(e)
    Par défaut
    J'enlève le tag "Résolu" de cette discussion car c'est vrai, je n'avais pas testé si la solution proposée par PC soft fonctionnait. Quelqu'un m'a envoyé un MP pour me signaler qu'il avait essayé mais cela n'avait pas fonctionné.

    Du coup il a renvoyé un requethost et il nous dira ce que PC soft lui a répondu à ce sujet...

  8. #8
    Invité
    Invité(e)
    Par défaut
    Pas de nouvelles, et pas résolu...

  9. #9
    Membre averti
    Profil pro
    au repos
    Inscrit en
    Février 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2013
    Messages : 156
    Points : 331
    Points
    331
    Par défaut
    Bonjour,
    bonne nouvelle : Il semblerait que j'arrive à faire fonctionner des pseudo génériques. Voici comme j'ai procédé :
    1 - J'ai créé une bibliothèque de classe en c# qui contient ceci :
    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
    16
    17
    18
    using System;
    using System.Collections.Generic;
     
    namespace MesClasses
    {
    	/// <summary>
    	/// Description of MesClasses
    	/// </summary>
    	public class dummyIntList : List<int>
    	{
     
    	}
     
    	public class dummyStringList : List<String>
    	{
     
    	}
    }
    j'ai donc créé des classes pipotesques de type List<int> et List<String>
    je compile et j'obtiens un assemblage mesclasses.dll que j'incorpore dans un projet windev et oh miracle je me retrouve avec des nouvelles classes de type
    List<System.Int32> et List<System.String> dans mon projet.

    Et voici un exemple de code pour prouver que cela marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MaListeEntier est une "List<System.Int32>"
    MaListeChaine est une "List<System.String>"
     
    MaListeEntier.Add(10)
    MaListeEntier.Add(55)
    MaListeEntier.Add(222)
    Trace( "MalisteEntier  nombre : " + MaListeEntier.Count + " - Index de 222 : " + MaListeEntier.IndexOf(222))
    MaListeChaine.Add("Cela")
    MaListeChaine.Add("Semble")
    MaListeChaine.Add("Marcher")
    MaListeChaine.Add("!")
    Trace( "MalisteChaine nombre : " + MaListeChaine.Count + " - Index de "!" : " + MaListeChaine.IndexOf("!"))


    Ceci a été réalisé avec sharpdevelop pour le c# et windev 16

    Amicalement, nullosse
    Fichiers attachés Fichiers attachés

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ah, eh bien alors cela fonctionne donc!

    Merci pour ce test grandeur nature, je n'avais pas trop eu le temps de vérifier cela par moi-même.

    Comme quelqu'un m'avait dit que la solution proposée par PC soft ne fonctionnait pas, il semblerait donc que si finalement.

    Donc cette fois c'est OK je met la discussion en résolu.

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

Discussions similaires

  1. [WD17] classe générique Windev
    Par tunizar dans le forum WinDev
    Réponses: 7
    Dernier message: 09/12/2013, 15h18
  2. Modifier la classe sun.net.ftp.*;
    Par koolway dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 07/03/2006, 20h16
  3. Réponses: 14
    Dernier message: 15/12/2005, 18h46
  4. [C#][ADO] Classe Générique ADO
    Par tscoops dans le forum Accès aux données
    Réponses: 2
    Dernier message: 15/11/2005, 14h21
  5. [Generics] Classe générique
    Par norkius dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2004, 15h57

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