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é ou méthode [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Débutant
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Débutant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 87
    Points
    87
    Par défaut propriété ou méthode
    Bonjour a tous,

    je me pose la question de savoir dans quel cas utiliser une méthode ou une propriété. J'ai lu que les propriétés était pour les données et les méthodes pour les traitements. Jusque là ca va. mais je me pose la question lorsque on se trouve à la limite entre les deux.

    exemple:

    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
    22
    23
    24
    25
    26
    27
     
    class exemple
    {
     
    private string _baseurl
     
    public string BaseUrl
    {
    get{ return _baseurl;}
    set{_baseurl = value; }
    }
     
    		public string GetTLD()
    		{
    			Uri uri = new Uri(this._baseurl);
    			string domain = uri.Host;
     
    			string[] t = domain.Split('.');
     
    			return t[t.Length-1];
    		}
     
    		public static bool IsFromBelgium()
    		{
    			return (GetTLD() == ".be") ? true : false;
    		}	
    }
    Je mets :
    BaseUrl -> propriété puisque il 'agit d'une donnée de la class
    GetTLD -> en méthode puisque j'ai du traitement
    IsFromBelgium -> propriété en lecture seule ou méthode ??

    IsFromBelgium : il s'agit d'une donnée en rapport avec la donnée _baseUrl mais comporte quand même un petit traitement.

    donc que faire lrsqu'on est limite entre traitement et

    Merci pour l'éclaircissement.

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Si on reprends les cours de POO :

    Dans un premier temps il faut avoir correctement défini ta classe, son nom car cela permettra d'identifier ses propriétés (et on constate que dans ton exemple c'est déjà mal barré ..... )

    Ensuite et bien il faut potasser notre référentiel :

    https://msdn.microsoft.com/fr-fr/lib...v=vs.100).aspx

    Bonne lecture ++

  3. #3
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    En pratique, on utilise une propriété quand :
    • C'est une valeur qui peut être considéré comme un attribut (potentiellement en lecture seule) ;
    • Si l'objet n'est pas modifié, la valeur de retour d'un attribut reste le même lors des appels successifs ;
    • Le calcul de l'attribut est simple et rapide.


    Ainsi, dans ton exemple, IsFromBelgium peut tout à fait être une propriété.

    Pour la valeur lors des appels successifs, 2 cas de figures à prendre en compte. Ou bien la valeur de retour est une valeur, et dans ce cas, tant que le calcul est déterministe, il n'y a pas de soucis. Ou bien la valeur de retour est une référence, et dans ce cas, il est d'usage de mettre cette valeur en cache au sein même de l'objet. Sinon, chaque appel à la propriété pourrait créer un nouvel objet qu'il faudrait potentiellement libérer s'il implémente l'interface IDisposable. Et là, l'appelant aurait besoin de connaître le détail de l'implémentation pour déterminer si c'est à lui ou non de gérer la ressource correctement. La seule exception est pour les chaînes de caractères, qui sont traités spécialement au sein du CLR (les chaînes sont immutables et sauf option particulière, 2 chaînes identiques ont la même référence).

    Si le calcul est complexe et long, il vaut mieux passer par une méthode. myObject.GetXXX() indique implicitement un calcul, tandis que myObject.GetXXX donne l'impression d'un attribut et donc d'un accès immédiat.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

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

Discussions similaires

  1. Propriété ou méthode non-gérée
    Par abennis dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/06/2007, 15h18
  2. Propriété ou méthode non gérée par cet objet
    Par abennis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/06/2007, 17h59
  3. propriété ou méthode non gérée par cet objet
    Par Elstak dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/05/2007, 21h23
  4. Attribution d'une propriété ou méthode
    Par kgb1917 dans le forum Access
    Réponses: 12
    Dernier message: 25/05/2007, 15h13
  5. Erreur:Propriété ou méthode non gérée par cet objet.
    Par nodogeid dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/05/2007, 17h08

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