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 :

Propriété d'une class type var


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 4
    Par défaut Propriété d'une class type var
    Bonjour,

    Apres avoir cherché je ne trouve pas la réponse à mon problème.
    J'aimerais qu'une de mes propriété puisse être de type var :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class test
    {
       public int key { get; set; }
       public string name { get; set; }
       public "var" value { get; set; }
    }

    Est ce tout simplement possible vu que le language est compilé ?

    merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    soit tu utilises le type "object"
    soit tu peux utilise un type généric (voir classe et heritage)
    soit tu peux utilisé une interface
    soit tu en fait un type générique comme les List<T>
    ou T deviendra ce que tu définis à l'initialisation test<int>, test<string>, ect
    tu peux aussi définir que T doit être par exemple une interface ("ISavable")
    comme ca tu pourra faires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void Save()
    {
    T.Save();
    }

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je pense que tu as mal compris le sens du mot-clé var... Ca ne veut pas dire que tu peux mettre n'importe quoi dans la variable ; elle reste fortement typée, c'est juste que tu laisses le compilateur "deviner" le type en fonction de la valeur initiale. Vu qu'ici il n'y a pas de valeur initiale, ça n'a pas de sens... Le mot clé var ne peut être utilisé que pour déclarer des variables locales, qui doivent être initialisées immédiatement lors de la déclaration.

    Si tu veux une propriété qui puisse accepter une valeur de n'importe quel type, tu peux utiliser une des options proposées par BenoitM. Si tu es en C# 4 ou plus, tu peux également utiliser dynamic (en pratique je trouve que c'est rarement justifié, mais il y a des scénarios où c'est utile)

Discussions similaires

  1. Lecture de propriété d'une classe
    Par Mass-yas dans le forum VB.NET
    Réponses: 7
    Dernier message: 12/06/2007, 10h52
  2. Ajout de propriété dans une classe d'une assembly
    Par ftesson dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 14/05/2007, 14h25
  3. Double propriété dans une classe
    Par Kiboumz dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/03/2007, 13h49
  4. [VB.NET 2005] Parcourir les propriétes d'une Class
    Par ricil78 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/03/2007, 21h47
  5. Réponses: 2
    Dernier message: 13/12/2006, 15h10

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