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 :

Struct nullable, ou classe ?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Par défaut Struct nullable, ou classe ?
    Bonjour à tous,

    J'ai une classe qui s'occupe de gérer des groupes d'utilisateurs, ainsi que les utilisateurs eux-mêmes.

    J'ai donc une classe Gestion dans laquelle se trouve un ArrayList groupes et une struct utilisateurs.

    la struct utilisateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public struct User
    {
      int uid;
      string firstname;
      string lastname;
    }
    j'ai une méthode qui s'occupe de créer un nouvel utilisateur et de l'insérer dans l'ArrayList groupe.

    Mon problème est dans ma méthode SearchUser, que je me sers pour rechercher un utilisateur dans mon ArrayList ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private User SearchUser(uid)
    {
      ... parcoure les utilisateurs dans l'arrayList ...
     
      si le uid est trouvé {
         return user
      }
     
      return ????
     
    }
    désolé pour le pseudocode ...

    ma méthode doit absolument retourner un type User (ma struct) mais ma struct est une valeur et non une référence et si je voulais retourner null dans le cas ou aucun utilisateur a été trouvé .. le compilateur ne veut pas parce qu'apparemment, une struct n'est pas nullable.

    devrais-je transformer ma struct User en inner class User? ou bien existe-t-il une solution logique à tout ça?

    Merci d'avance pour votre aide,

    Salutations,

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Pour ton User, pkoi passer par une struct et non pas par une classe ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Par défaut
    c'est la source de mon problème ... je me demande dans quel(s) cas il est mieux de créer une inner class ...

    normalement j'aurais créé une classe user et une classe group à l'interieur de ma classe de gestion ... est-ce correct de procéder de cette façon ?

    je n'ai p-e pas tout saisi de l'orienté objet, mais je trouve qu'une classe avec seulement 5 variables membres de type string, et aucune méthode, c'est bizarre... non?

    merci de m'éclairer sur le sujet!

    salutations

  4. #4
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    si tu veux retourner null, il faut utiliser les nullable
    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
    19
    20
    21
     
    		public struct User
    		{
    			public int uid;
    			public string firstname;
    			public string lastname;
    		}
     
    		private User? test()
    		{
    			User u = new User() ;
    			u.uid = 1;
    			u.firstname = "shwinFirstName";
    			u.lastname = "hwinLastName";
    			return null;
    		}
     
    		private void button1_Click(object sender, EventArgs e)
    		{
    			User? u = test();
    		}

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Par défaut
    Merci pour vos suggestions. Je commence à trouver qu'une struct nullable est un peu trop de trouble pour ce que je veux faire. Je crois qu'il est mieux que je crée une classe User finalement.

    J'ai mis ce message comme Résolu mais si quelqu'un a d'autres suggestions, j'aimerais bien les lire.

    Merci encore,

    Salutations.

  6. #6
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Citation Envoyé par cobolfingaz
    je n'ai p-e pas tout saisi de l'orienté objet, mais je trouve qu'une classe avec seulement 5 variables membres de type string, et aucune méthode, c'est bizarre... non?
    C'est tout a fait normal d'avoir des objets avec seulement des variable + accessor. Par exemple, si ton obj représente des données d'une BD.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Par défaut
    ouais, je vais me déclarer deux inner class pour gérer mes données. merci bcp à tous pour votre aide encore une fois :-)

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2012, 18h55
  2. Struct propre à une classe
    Par Kaluza dans le forum Langage
    Réponses: 20
    Dernier message: 22/10/2011, 15h32
  3. Définitions enum et struct propres à une classe
    Par Kaluza dans le forum Langage
    Réponses: 5
    Dernier message: 26/07/2011, 09h58
  4. python C API: convertir une struct C en Class python
    Par dmichel dans le forum Interfaçage autre langage
    Réponses: 11
    Dernier message: 25/06/2008, 17h30
  5. class::struct
    Par ibtisss dans le forum Modules
    Réponses: 3
    Dernier message: 29/01/2006, 00h36

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