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

Windows Forms Discussion :

Constructeur d'objet null


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut Constructeur d'objet null
    Bonjour,

    j'aimerais créer un construteur d'un objet qui prenne un paramètre et qui selon ce paramètre retourne une référence nulle à mon objet

    Bref par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MaClasse monObjet = new MaClasse(par1);
     
    if (monObjet == null)
    {
     ...
    }
    Mon problème c'est que je ne sais pas si une telle manipulation est possible et si c'est le cas comment le réaliser
    J'ai essayé les 2 tests suivants mais ça ne marche pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public MaClasse
    public class MaClasse
    {
      public MaClasse(par1)
      {
       if (par1 == null)
           return null;
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class MaClasse
    {
      public MaClasse(par1)
      {
       if (par1 == null)
           this = null;
      }
    }

    Merci pour vos réponses !

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Non ça n'est pas possible. Pour cela il faut que tu passes par une factory (pattern factory).
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Un constructeur, comme son nom l'indique, sert à construire des instances. Tu ne peux donc pas initialiser un objet à null à partir d'un constructeur.
    Au pire tu pourrais déclencher une exception dans le constructeur qui indiquerais que l'initilisation ne peut pas avoir lieu.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  4. #4
    Membre chevronné
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Par défaut
    Citation Envoyé par tchoimars Voir le message
    Bonjour,

    j'aimerais créer un construteur d'un objet qui prenne un paramètre et qui selon ce paramètre retourne une référence nulle à mon objet

    Bref par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MaClasse monObjet = new MaClasse(par1);
     
    if (monObjet == null)
    {
     ...
    }
    Le plus simple serait de déclarer une référence de type ma MaClasse et de n'appeler le constructeur que si par1 a la bonne valeur. Dans le cas contraire, monObjet sera null.
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MaClasse monObjet = null;
    if (par1 == theValue)
    {
       monObjet = new MaClasse();
    }
    // Ici, si par1 == theValue, monObjet est null, 
    // sinon il est affecté avec la valeur renvoyée par le constructeur par défaut.
    L'avantage, c'est que le corps de ton constructeur reste très simple.

  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
    Ca serait horrible, si c'était possible !

    Déjà que faire des "if (gnagna == null)" un peu partout dans le code est souvent nécessaire mais toujours relou, je pâlis à l'idée d'un test de nullité obligatoire à chaque création d'objet...

    null, c'est bien, en abuser, ça craint !

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

Discussions similaires

  1. objet null en ncomparaison
    Par root76 dans le forum Langage
    Réponses: 5
    Dernier message: 19/04/2007, 15h03
  2. [jsp] usebean d'un objet null
    Par GLDavid dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/07/2006, 18h12
  3. Réponses: 4
    Dernier message: 18/02/2006, 16h48
  4. [Language]Type d'un objet null
    Par Calambo dans le forum Langage
    Réponses: 8
    Dernier message: 26/04/2005, 10h06
  5. Formulaire - lien JS - objet Null ou pas objet...
    Par Romalafrite dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/10/2004, 14h08

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