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 :

Type générique T en parametre en null par défaut


Sujet :

C#

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut Type générique T en parametre en null par défaut
    Bonjour à tous,

    J'ai un code qui fonctionne, mais j'essaye de le rendre plus générique.

    Aujourd'hui, MVVM oblige, j'ai une interface pour chaque classe modèle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        /// <summary>Interface de définition des méthodes d'accès, de création et d'édition des éléments ad hoc.</summary>
        public interface IDataAccessServiceGroups {
            /// <summary>Méthode abstraite, Signature de la méthode GetAll().</summary>
            tblGridGroups GetAll(int page=0, tblGroup filter = null, string ordre = "lib");
            tblGroup Add(tblGroup u);
            tblGroup Upd(tblGroup u);
            bool Del(tblGroup u);
        }
    J'aimerais les mutualiser, j'ai donc fait un début de truc comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public interface IDataAccessServiceGroups<G, T> {
            /// <summary>Méthode abstraite. Signature de GetAll().</summary>
            G GetAll(int page, T filter=null, string ordre = "lib");
            T Add(T u);
            T Upd(T u);
            bool Del(T u);
        }
    Seulement, il n'aime pas mon T filter=null, il dit:
    "Impossible d'utiliser une valeur de type '<Null>' comme paramètre par défaut, car il n'existe pas de conversion standard en type 'T'"
    J'ai cherché et je ne trouve pas comment le mettre en nullable.

    Avez vous une idée ?

    Merci d'avance.
    David.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Essaye avec

  3. #3
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    C'est bon,

    Il faut conditionner le type, le rendre moins.... Générique ;-)
    avec une contrainte de type générique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        public interface IDataAccessServiceGroups<G, T> where G : class where T : class {
    class est un type nullable, on dirait.
    En tout cas, c'est ma déduction, mais ça fonctionne. :-)

    [EDIT]
    Merci ebastien pour ta participation.
    Ta solution a l'air de fonctionner aussi. Et du coup, plus besoin de contraintes.
    David.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/09/2010, 10h47
  2. Réponses: 8
    Dernier message: 01/08/2009, 16h31
  3. [phpMyAdmin] Valeur par défaut null pour les types numériques
    Par xianxian620 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 09/12/2008, 15h34
  4. Valeur par défaut null pour les types numériques
    Par xianxian620 dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/05/2008, 11h57
  5. Pointeur sur NULL par défaut en parametre.
    Par KernelControl dans le forum Débuter
    Réponses: 3
    Dernier message: 15/12/2005, 10h09

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