Partage
  • Partager sur Facebook
  • Partager sur Twitter

méthode toString pour mon object

Sujet résolu
    21 février 2019 à 9:53:49

    Bonjour, 

    Voici mon objet user, il est très simple : 

    public class LoginViewModel
        {
    
            LoginViewModel(string username, string passwd)
            {
                this.user_login = username;
                this.user_password = passwd;
            }
            public LoginViewModel()
            {
            }
    
            [Required]
            [Display(Name = "Identifiant")]
            public string user_login { get; set; }
    
            [Required]
            [DataType(DataType.Password)]
            [Display(Name = "Mot de passe")]
            public string user_password { get; set; }
    }


    Déjà j'aurais une petite questions HS, mon constructeur n'a pas l'air bon. Je n'ai pas d'attribut, alors, je ne devrais peut-être pas faire this.user_login = username. Comment je devrais construire mon constructeur ? 

    Sinon, m'a vrai question c'est pour la méthode ToString, que je dois faire pour avoir un sorte de var_dump comme pour PHP. (j'ai vus ça dans ce poste https://stackoverflow.com/questions/14448160/how-to-console-log-print-r-debug-trace-in-c) Et pouvoir utilisé : 

    System.Diagnostics.Debug.WriteLine("LoginViewModel");

    Ma méthode ToString ressemble à ça : 

    //aide pour ma méthode toString
            public override string ToString(LoginViewModel model)
            {
                return String.Format("{0} {1}", model.user_login, model.user_password);
            }

    Bien sûr j'ai une erreur : 

    Pouvais vous m'aider ? Comment je peux voir ce que contient le login et le mot de passe de l'objet LoginViewModel, si j'ai une erreur lorsque je l'utilise ? 

    Merci, pour vos réponses.

    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2019 à 11:09:46


      Salut !

      Pour ta classe, déclare les variables user_login et user_password:

      public class LoginViewModel
          {
       public string user_login;
       public string user_password;
      
              public LoginViewModel(string username, string passwd)
              {
                  user_login = username;
                  user_password = passwd;
              }
          }

      Sinon, pour debug, si tu es sur une windows form:

      tu peut utiliser la méthode MessageBox.Show("ton message");

      si tu es sur une console application:

      Console.WriteLine("ton message");

      pour la méthode ToString je comprend pas ce que tu cherche a faire

      • Partager sur Facebook
      • Partager sur Twitter
        21 février 2019 à 13:44:26

        Salut,

        Object.ToString() que tu veux override sert à décrire ton instance (ou à la limite la classe si c'est un truc complexe), donc ça n'a pas de sens de lui donner un objet à traiter (d'ailleurs le message d'erreur te dit qu'il ne trouve pas de méthode avec cette signature que tu pourrais override, enlève ton paramètre et vire les "model.").

        • Partager sur Facebook
        • Partager sur Twitter
          22 février 2019 à 8:49:08

          D'accord merci pour vos réponses. J'avais vu beaucoup de personne qui mettaient une méthode ToString dans leur objet, et je voulais un sorte de var_dump , où on peut lire le contenue de lobject. J'avais trouvé un sujet StarckOverflow, mais finalement le mode debug va très bien ( je ne l'avais pas encore utilisé, du moins très peu) .

          Il suffit de faire un point, d'arret, d'ouvrir la fenêtre immédiat (ctrl + alt + I) . Et ouvrir aussi l'explorateur de variable local . C'est magique *-*. Après on fait un pas à pas avec F11

          Pour mon controller, j'ai  viré les this, car il servait vraiment à rien . Par contre j'avais dejà une méthode 

          public string user_login { get; set; }

          donc je pouvais pas déclarer une autre variable au dessus ^^.

          Merci,

          Et bonne journée.

          -
          Edité par Cielphis 22 février 2019 à 10:35:10

          • Partager sur Facebook
          • Partager sur Twitter
            22 février 2019 à 11:09:38

            Ha oui, utiliser les vrais outils de debug c'est toujours mieux :)

            C'est pas une méthode, c'est une propriété, c'est "en gros" un champ de ta classe pour lequel tu peux préciser comment il intéragit avec l'extérieur (et quand on fait de la validation ou des trucs comme ça en général on utilise un champ privé en plus de la propriété).

            https://docs.microsoft.com/fr-fr/dotnet/csharp/programming-guide/classes-and-structs/properties

            • Partager sur Facebook
            • Partager sur Twitter
              22 février 2019 à 17:12:08

              Hola !

              Cielphis a écrit:

              J'avais vu beaucoup de personne qui mettaient une méthode ToString dans leur objet, et je voulais un sorte de var_dump , où on peut lire le contenue de l'object.

               Tu peux, mais tu ne peux pas y mettre de paramètres.

              public class ModelMachin
                      {
                          public ModelMachin() { }
              
                          private String name = "machin";
                          private int age = 0x16;
                          
                          //PAS BON
                          public override string ToString(ModelMachin t)
                          {
                              return String.Format("Name : {0} \nAge : {1}", t.name, t.age);
                          }
              
                          //OK
                          public override string ToString()
                          {
                              return String.Format("Name : {0} \nAge : {1}", this.name, this.age);
                          }
                      }



              -
              Edité par LilyKianii 22 février 2019 à 18:14:01

              • Partager sur Facebook
              • Partager sur Twitter
                22 février 2019 à 18:07:19

                Ah d'accord. Merci pour la démonstration @LilyKianii, je comprend tout ^^
                • Partager sur Facebook
                • Partager sur Twitter

                méthode toString pour mon object

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown