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

 .NET Discussion :

évitons de lever inutilement des execptions


Sujet :

.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut évitons de lever inutilement des execptions
    Bonjour,
    J'ai une classe avec une propriété nom, une propriété objet obj et enfin un DBType type.
    Ce que je voudrais faire c'est que en fonction de obj, je voudrais définir le DBType.
    Un exemple pour que ce soit plus facile à comprendre :
    Si mon objet a pour valeur 4, je voudrais que le type soit un int16 par exemple
    Si mon objet a pour valeur 4.15 je voudrais que le type soit double.

    Pour ce faire j'avais pensé appelé un convertisseur en int par exemple et si c'est pas un int, Il y aura une exception de levé.

    Y a-t-il un autre moyen plus propre de faire cela sans lever toutes c'est exceptions.

    Merci de votre aide
    A bientôt

  2. #2
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Je pense qu'il doit y avoir un moyen beaucoup plus propre en utilisant les génériques, mais il faudrait plus de détails sur l'utilisation de ta classe...
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut
    Bonjour,
    Merci de m'avoir répondu aussi rapidement.
    En faite ma classe s'appelle LdapParameter. C'est un peu comme la classe OleDbParameter Sauf que c'est pour les requêtes LDAP. Mais en gros c'est pour ajouter des paramètres à des requêtes.
    J'espère avoir été assez clair.
    Encore merci de ta réponse.
    A bientôt

  4. #4
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    En admettant que tu travailles avec le framework 2.0 au minimum, je pense que les génériques pourront t'aider.

    Au lieu de ta classe qui doit ressembler à ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    public class LdapParameter
    {
      public string Name { get; set; }
      public object Obj { get; set; }
    }
    Tu peux éviter d'utiliser object :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    public class LdapParameter<T>
    {
      public string Name { get; set; }
      public T Value { get; set; }
    }
    Grâce à quoi tu pourras faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    LdapParameter<int> p1;
    LdapParameter<string> p2;
    LdapParameter<DateTime> p3;
    et ainsi de suite.

    Il ne te reste plus qu'à gérer d'une manière ou d'une autre le mapping entre le type T et le DBType...
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut
    Merci de ta réponse qui me semble fort a propos mais cela nous fait s'éloigner de la classe OleDbParameter. Cette dernière n'est pas de type générique et possède quand même un attribut DBType qui est renseigné automatiquement comment il arrive à le renseigner automatiquement ?

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par wakan Voir le message
    Merci de ta réponse qui me semble fort a propos mais cela nous fait s'éloigner de la classe OleDbParameter. Cette dernière n'est pas de type générique et possède quand même un attribut DBType qui est renseigné automatiquement comment il arrive à le renseigner automatiquement ?
    Elle utilise peut-être de la Reflection pour déterminer le type.

    Essaye un coup de Reflector sur la classe pour voir (ou mieux les sources du Framework).
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

Discussions similaires

  1. [Comparatif] (inutile et superflu) des machines à cafés en milieu professionel
    Par Gf6HqmTW dans le forum La taverne du Club : Humour et divers
    Réponses: 43
    Dernier message: 20/03/2008, 21h04
  2. Des parenthèse pas inutiles
    Par mat087 dans le forum C++
    Réponses: 8
    Dernier message: 10/04/2007, 14h42
  3. [C#] Suppression des références et clauses using inutiles
    Par heavydrinker dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/08/2006, 16h25
  4. [Socket]Lever des exceptions
    Par Sylario dans le forum Langage
    Réponses: 5
    Dernier message: 28/06/2006, 14h45
  5. Se debarrasser des inutiles
    Par gohu13 dans le forum Access
    Réponses: 3
    Dernier message: 20/12/2005, 14h22

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