Tom's Guide > Forum > Programmation > c# probleme de propriété set
Mot :    Pseudo :           
 

Bonjour, j'ai un petit souci avec une propriete. Je n'ai autorisé l'acces au "nom" avec un get mais volontairement j'ai pas mis de set. Or au début du programe je tente un changement sur le nom et le sexe. La console m'affiche les changements alors que le debogueur me dit qu'il ne peut etre assigné vu qu'il est en lecture seul. Alors pourquoi accepte t il la modif ?

voicie le code :

Code :
  1. using System;
  2. class MainEntrypoint
  3. {
  4.     static void Main()
  5.     {
  6.         // creation de la classe humain avec une fille coralie
  7.         Humain perso = new Humain("coralie", false);
  8.         // affichage du resultat
  9.      
  10.         Console.WriteLine(perso.resultat());
  11.         // changement de nom et de sexe:
  12.         perso.LeNom = "hervé";
  13.         perso.LeSexe=true;
  14.         Console.WriteLine(perso.resultat());
  15.     }
  16. }
  17. class Humain
  18. {
  19.     // champs
  20.     private string nom;
  21.     private bool sexe;
  22.     // propriété d'acces
  23.     public string LeNom
  24.     {
  25.         get
  26.         {
  27.             return nom;
  28.         }
  29.      
  30.     }
  31.     public bool LeSexe
  32.     {
  33.         get
  34.         {
  35.             return sexe;
  36.         }
  37.         set
  38.         {
  39.             sexe = value;
  40.         }
  41.     }
  42. // Constructeur pour l'acces aux proprieté et modification des champs
  43.     public Humain(string SonNom, bool SonSexe)
  44.     {
  45.         nom=SonNom;
  46.         sexe=SonSexe;
  47.     }
  48.     // méthode d'affichage du résultat
  49.     public string resultat()
  50.     {
  51.         string recupe=" personne : " + nom ;
  52.         recupe+= sexe ?" est un garcon." : " est une fille.";
  53.         return recupe;
  54.     }
  55. }



j'ai fais l'essais en mettant un set au nom et en suprimant celui du sexe et la parcontre il bloque et reffuse la modif mais pourquoi ne le fait il pas dans le premier cas?


Message édité par rvantony le 30-12-2006 à 14:29:36
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Personne n'a une idée, est ce normale ?

Répondre à rvantony

ça marche avec les classes ce machin ? (string étant une classe)
Tu vois microsoft inventer des concepts qui servent à rien et qui ne marchent pas ? mmh... ok j'ai rien dis. :D

Répondre à CRicky

string est un type pas une classe...mais ca me donne pas de réponse !

Répondre à rvantony

Je ne sais pas trop bien quel compilateur tu as, mais chez moi, ce code ne compile pas.
La propriété ou l'indexeur 'ConsoleApplication1.Humain.Nom' ne peut pas être assigné -- il est en lecture seule

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace ConsoleApplication1
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Humain h = new Humain("Coralie", Sexe.Feminin);
  11.             Console.WriteLine(h);
  12.             h.Nom = "Hervé";
  13.             h.Sexe = Sexe.Masculin;
  14.             Console.WriteLine(h);
  15.         }
  16.     }
  17.     public enum Sexe
  18.     {
  19.         Masculin,
  20.         Feminin,
  21.     }
  22.    
  23.     public class Humain
  24.     {
  25.         private String _nom;
  26.         private Sexe _sexe;
  27.         public Humain(String nom, Sexe sexe)
  28.         {
  29.             _nom = nom;
  30.             _sexe = sexe;
  31.         }
  32.         public String Nom
  33.         {
  34.             get { return _nom; }
  35.         }
  36.         public Sexe Sexe
  37.         {
  38.             get { return _sexe; }
  39.             set { _sexe = value; }
  40.         }
  41.         public override string ToString()
  42.         {
  43.             return String.Format("{0} est de sexe {1}", _nom, _sexe.ToString());
  44.         }
  45.     }
  46. }

------------------------------ Djakar
http://www.nova-id.com
Kit de survie sur les forums : Du bon sens, de la modération, du savoir vivre et une bonne dose d'humour
Répondre à Djakar

ok merci alors c'est un bug dans la compile je connais pas trop encore je bosse sur le microsoft visual c# 2005 express edition je pense que c'est lui qui compile mais pas sans difficultée apparement.

Répondre à rvantony

J'utilise Visual Studio 2005 Pro, mais il s'agit en fait du même compilateur. Seul l'IDE change.

Répondre à Djakar

Alors je dois faire quelque chose qui va pas ! faut dire que je débute et je maitrise pas l'usine.

Répondre à rvantony
Tom's Guide > Forum > Programmation > c# probleme de propriété set
Aller à :

Il y a 560 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens