From c4b52324d22597c6841b3c6240e98026842d41fe Mon Sep 17 00:00:00 2001 From: Guillaume REY Date: Mon, 12 Jun 2023 08:57:05 +0200 Subject: [PATCH 1/2] =?UTF-8?q?documentation=20classe=20=C3=A9quipage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/Model/Classes/Equipage.cs | 115 +++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 2 deletions(-) diff --git a/Sources/Model/Classes/Equipage.cs b/Sources/Model/Classes/Equipage.cs index ef7f611..6852dd7 100644 --- a/Sources/Model/Classes/Equipage.cs +++ b/Sources/Model/Classes/Equipage.cs @@ -1,4 +1,10 @@ -using System; +/// \file Equipage.cs +/// \brief Contient la définition de la classe Equipage. +/// +/// La classe Equipage représente les différents équipages avec leur nom, leur région de création, quand on les voit pour la première fois dans le manga et dans l'anime, leur Statut (s'il est encore actif ou non) et une description de ce dernier. +/// + +using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; @@ -11,7 +17,13 @@ using System.Xml.Linq; namespace Model.Classes { + /// + /// Représente un équipage dans le modèle. + /// [DataContract(Name = "equipage")] + /// + /// Représente un équipage héritant de la classe ObjetOhara. + /// public class Equipage : ObjetOhara { [DataMember(Name = "nomromanise")] @@ -25,6 +37,11 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit la région d'origine de l'équipage. + /// + /// Une chaîne de caractères représentant la région d'origine de l'équipage. + [DataMember(Name = "region")] private string? region; public string? Region { @@ -35,6 +52,11 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier chapitre de l'équipage. + /// + /// Un entier représentant le numéro du premier chapitre de l'équipage. + [DataMember(Name = "premierchap")] private int premierchap; public int PremierChap { @@ -45,6 +67,11 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier épisode de l'équipage. + /// + /// Un entier représentant le numéro du premier épisode de l'équipage. + [DataMember(Name = "premierep")] private int premierep; public int PremierEp { @@ -55,6 +82,11 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le statut de l'équipage. + /// + /// Une valeur booléenne indiquant le statut de l'équipage. + [DataMember(Name = "statut")] private bool statut; public bool Statut { @@ -65,6 +97,11 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit la description de l'équipage. + /// + /// Une chaîne de caractères représentant la description de l'équipage. + [DataMember(Name = "description")] private string? description; public string? Description { @@ -75,6 +112,11 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le capitaine de l'équipage. + /// + /// Un objet Personnage représentant le capitaine de l'équipage. + [DataMember(Name = "capitaine")] private Personnage? capitaine; public Personnage? Capitaine { @@ -85,37 +127,82 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient une collection en lecture seule des membres de l'équipage. + /// + /// Une collection en lecture seule d'objets Personnage représentant les membres de l'équipage. + [DataMember(Name = "membre")] private ObservableCollection membre = new ObservableCollection(); public IReadOnlyCollection Membre { get=>membre; } - + + /// + /// Ajoute un membre à l'équipage. + /// + /// Le membre à ajouter à l'équipage. + public void AjouterMembre(Personnage? p) { if(p!=null) membre.Add(p); } + /// + /// Retire un membre de l'équipage. + /// + /// Le membre à retirer de l'équipage. + public void RetirerMembre(Personnage? p) { if(p!=null) membre.Remove(p); } + /// + /// Vide la liste des membres de l'équipage. + /// + public void ViderMembre() => membre.Clear(); + /// + /// Obtient une collection en lecture seule des équipages alliés. + /// + /// Une collection en lecture seule d'objets Equipage représentant les équipages alliés. [DataMember(Name = "allie")] private ObservableCollection allie = new ObservableCollection(); public IReadOnlyCollection Allie { get => allie; } + /// + /// Ajoute un équipage allié. + /// + /// L'équipage allié à ajouter. public void AjouterAllie(Equipage? p) { if (p != null) allie.Add(p); } + /// + /// Retire un équipage allié. + /// + /// L'équipage allié à retirer. + public void RetirerAllie(Equipage? p) { if (p != null) allie.Remove(p); } + /// + /// Vide la liste des équipages alliés. + /// public void ViderAllie() => allie.Clear(); + /// + /// Initialise une nouvelle instance de la classe Equipage avec les valeurs spécifiées. + /// + /// Le nom de l'équipage. + /// Le nom romanisé de l'équipage. + /// La région d'origine de l'équipage. + /// Le numéro du premier chapitre de l'équipage. + /// Le numéro du premier épisode de l'équipage. + /// Le statut de l'équipage. + /// La description de l'équipage. public Equipage(string nom, string nomRomanise, string region, int premierChap, int premierEp, bool statut, string description) : base(nom) { @@ -142,6 +229,17 @@ namespace Model.Classes Description = description; } + /// + /// Initialise une nouvelle instance de la classe Equipage avec les valeurs spécifiées, y compris une image personnalisée. + /// + /// Le nom de l'équipage. + /// Le nom romanisé de l'équipage. + /// La région d'origine de l'équipage. + /// Le numéro du premier chapitre de l'équipage. + /// Le numéro du premier épisode de l'équipage. + /// Le statut de l'équipage. + /// La description de l'équipage. + /// Le chemin d'accès ou le nom de l'image personnalisée de l'équipage. public Equipage(string nom, string nomRomanise, string region, int premierChap, int premierEp, bool statut, string description, string image) : this(nom, nomRomanise, region, premierChap, premierEp, statut, description) { @@ -152,6 +250,11 @@ namespace Model.Classes Image = image; } + /// + /// Détermine si l'objet spécifié est identique à l'équipage actuel. + /// + /// L'objet à comparer avec l'équipage actuel. + /// True si l'objet spécifié est identique à l'équipage actuel, sinon False. public override bool Equals(object? obj) { @@ -167,12 +270,20 @@ namespace Model.Classes } } + /// + /// Retourne le code de hachage de l'équipage. + /// + /// Le code de hachage de l'équipage. public override int GetHashCode() { return HashCode.Combine(NomRomanise, Region, PremierChap, PremierEp, Statut, Description); } + /// + /// Retourne une représentation sous forme de chaîne de caractères de l'équipage. + /// + /// Une représentation sous forme de chaîne de caractères de l'équipage. public override string ToString() { From 966e2bcdf100ad547853ef1478331da6689e9c0d Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 15 Jun 2023 13:07:00 +0200 Subject: [PATCH 2/2] documentation des classes --- Sources/Model/Classes/FruitDuDemon.cs | 81 +++++++++++++++++- Sources/Model/Classes/Ile.cs | 71 +++++++++++++++- Sources/Model/Classes/ObjetOhara.cs | 65 ++++++++++++++- Sources/Model/Classes/Personnage.cs | 113 +++++++++++++++++++++++++- 4 files changed, 319 insertions(+), 11 deletions(-) diff --git a/Sources/Model/Classes/FruitDuDemon.cs b/Sources/Model/Classes/FruitDuDemon.cs index fdad12e..a25e567 100644 --- a/Sources/Model/Classes/FruitDuDemon.cs +++ b/Sources/Model/Classes/FruitDuDemon.cs @@ -1,4 +1,9 @@ -using System; +/// \file FruitDuDemon.cs +/// \brief Contient la définition de la classe FruitDuDemon. +/// +/// La classe FruitDuDemon représente les différents fruit du démons avec leur nom, nom romanisé, leur type, apparition du premier chapitre/premier épisode, une description et leurs forces et leurs faiblesses. +/// +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -10,9 +15,15 @@ using System.Xml.Linq; namespace Model.Classes { + /// + /// Représente un Fruit du Démon. + /// [DataContract(Name = "fruitdudemon")] public class FruitDuDemon : ObjetOhara { + /// + /// Obtient ou définit le nom romanisé du Fruit du Démon. + /// [DataMember(Name = "nomromanise")] private string? nomromanise; public string? NomRomanise { @@ -23,6 +34,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le type du Fruit du Démon. + /// [DataMember(Name = "type")] private string? type; public string? Type { @@ -33,6 +47,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier chapitre où le Fruit du Démon est mentionné. + /// [DataMember(Name = "premierchap")] private int premierchap; public int PremierChap { @@ -43,6 +60,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier épisode où le Fruit du Démon est mentionné. + /// [DataMember(Name = "premierep")] private int premierep; public int PremierEp { @@ -53,6 +73,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit la description du Fruit du Démon. + /// [DataMember(Name = "description")] private string? description; public string? Description { @@ -63,6 +86,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit les forces du Fruit du Démon. + /// [DataMember(Name = "forces")] private string? forces; public string? Forces { @@ -73,6 +99,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit les faiblesses du Fruit du Démon. + /// [DataMember(Name = "faiblesses")] private string? faiblesses; public string? Faiblesses { @@ -83,10 +112,25 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit les utilisateurs du Fruit du Démon. + /// [DataMember(Name = "utilisateur", EmitDefaultValue = false)] public List Utilisateur { get; set; } = new List(); - + + /// + /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés. + /// + /// Le nom du Fruit du Démon. + /// Le nom romanisé du Fruit du Démon. + /// Le type du Fruit du Démon. + /// Le numéro du premier chapitre où le Fruit du Démon est mentionné. + /// Le numéro du premier épisode où le Fruit du Démon est mentionné. + /// La description du Fruit du Démon. + /// Les forces du Fruit du Démon. + /// Les faiblesses du Fruit du Démon. + public FruitDuDemon(string nom, string nomRomanise, string type, int premierChap, int premierEp, string description, string forces, string faiblesses) : base(nom) { @@ -113,12 +157,32 @@ namespace Model.Classes Faiblesses = faiblesses; } + /// + /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés. + /// + /// Le nom du Fruit du Démon. + /// Le nom romanisé du Fruit du Démon. + /// Le type du Fruit du Démon. + /// Le numéro du premier chapitre où le Fruit du Démon est mentionné. + /// Le numéro du premier épisode où le Fruit du Démon est mentionné. + /// La description du Fruit du Démon. + /// Les forces du Fruit du Démon. + /// Les faiblesses du Fruit du Démon. + /// Le chemin de l'image du Fruit du Démon. + public FruitDuDemon(string nom, string nomRomanise, string type, int premierChap, int premierEp, string description, string forces, string faiblesses, string image) : this(nom, nomRomanise, type, premierChap, premierEp, description, forces, faiblesses) { if (String.IsNullOrWhiteSpace(image)) image = "baseimage.png"; Image = image; } + + /// + /// Détermine si l'objet spécifié est égal à l'objet actuel. + /// + /// L'objet à comparer avec l'objet actuel. + /// si l'objet spécifié est égal à l'objet actuel ; sinon, . + public override bool Equals(object? obj) { if (obj == null) return false; @@ -134,11 +198,24 @@ namespace Model.Classes } + + /// + /// Retourne le code de hachage de l'objet actuel. + /// + /// Code de hachage calculé à partir des propriétés de l'objet. + public override int GetHashCode() { return HashCode.Combine(NomRomanise, Type, PremierChap, PremierEp, Description, Forces, Faiblesses); } + + + /// + /// Retourne une chaîne qui représente l'objet actuel. + /// + /// Chaîne représentant l'objet actuel. + public override string ToString() { return "FruitDuDemon : " + Nom +" " +EstFavori+" " + NomRomanise + " " + Type + " " + PremierChap + " " + PremierEp + " " + Description + " " + Forces +" "+Faiblesses+ " " + Image; diff --git a/Sources/Model/Classes/Ile.cs b/Sources/Model/Classes/Ile.cs index 43b574f..d2af8ff 100644 --- a/Sources/Model/Classes/Ile.cs +++ b/Sources/Model/Classes/Ile.cs @@ -1,4 +1,9 @@ -using System; +/// \file Ile.cs +/// \brief Contient la définition de la classe Ile. +/// +/// La classe Ile représente les différents iles avec leur nom, nom romanisé, leur région de localisation, la première fois qu'on les vois dans le manga/animé, une description de l'île et une description géographique d'où se situe l'île. +/// +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -10,9 +15,15 @@ using System.Xml.Linq; namespace Model.Classes { + /// + /// Représente une île dans le monde de One Piece. + /// [DataContract(Name = "ile")] public class Ile : ObjetOhara { + /// + /// Obtient ou définit le nom romanisé de l'île. + /// [DataMember(Name = "nomromanise")] private string? nomromanise; public string? NomRomanise @@ -24,7 +35,9 @@ namespace Model.Classes OnPropertyChanged(); } } - + /// + /// Obtient ou définit la région où se situe l'île. + /// [DataMember(Name = "region")] private string? region; public string? Region { @@ -35,6 +48,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier chapitre où l'île est mentionnée. + /// [DataMember(Name = "premierchap")] private int premierchap; public int PremierChap { @@ -45,6 +61,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier épisode où l'île est mentionnée. + /// [DataMember(Name = "premierep")] private int premierep; public int PremierEp { @@ -55,6 +74,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit la description de l'île. + /// [DataMember(Name = "description")] private string? description; public string? Description { @@ -65,6 +87,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit la situation géographique de l'île. + /// [DataMember(Name = "geographie")] private string? geographie; public string? Geographie { @@ -77,6 +102,16 @@ namespace Model.Classes } + /// + /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés. + /// + /// Le nom de l'île. + /// Le nom romanisé de l'île. + /// La région où se situe l'île. + /// Le numéro du premier chapitre où l'île est mentionnée. + /// Le numéro du premier épisode où l'île est mentionnée. + /// La description de l'île. + /// La situation géographique de l'île. public Ile(string nom, string nomRomanise, string region, int premierChap, int premierEp, string description, string geographie) : base(nom) { @@ -111,6 +146,18 @@ namespace Model.Classes } + /// + /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés, y compris une image. + /// + /// Le nom de l'île. + /// Le nom romanisé de l'île. + /// La région où se situe l'île. + /// Le numéro du premier chapitre où l'île est mentionnée. + /// Le numéro du premier épisode où l'île est mentionnée. + /// La description de l'île. + /// La situation géographique de l'île. + /// Le chemin de l'image représentant l'île. + public Ile(string nom, string nomRomanise, string region, int premierChap, int premierEp, string description, string geographie, string image) : this(nom, nomRomanise, region, premierChap, premierEp, description, geographie) { if(String.IsNullOrWhiteSpace(image)) { @@ -119,6 +166,13 @@ namespace Model.Classes Image = image; } + + /// + /// Détermine si l'objet spécifié est égal à l'objet actuel. + /// + /// L'objet à comparer avec l'objet actuel. + /// true si les objets sont égaux ; sinon, false. + public override bool Equals(object? obj) { if (obj == null) return false; @@ -134,12 +188,25 @@ namespace Model.Classes } + + + /// + /// Retourne le code de hachage de l'objet. + /// + /// Le code de hachage de l'objet. + public override int GetHashCode() { return HashCode.Combine(NomRomanise, Region, PremierChap, PremierEp, Description, Geographie); } + + /// + /// Retourne une chaîne de caractères représentant l'objet actuel. + /// + /// Une chaîne de caractères représentant l'objet actuel. + public override string ToString() { return "Ile : "+ Nom +" "+NomRomanise+" "+Region+" "+PremierChap+" "+PremierEp+" "+Description+" "+Geographie+" "+Image; diff --git a/Sources/Model/Classes/ObjetOhara.cs b/Sources/Model/Classes/ObjetOhara.cs index 7d9b692..2820ce2 100644 --- a/Sources/Model/Classes/ObjetOhara.cs +++ b/Sources/Model/Classes/ObjetOhara.cs @@ -1,4 +1,10 @@ -using System; +/// \file ObjetOhara.cs +/// \brief Contient la définition de la classe ObjetOhara. +/// +/// La classe ObjetOhara représente les différents objets de notre application Ohara avec leur nom et l'image qui leur est attitré pour pouvoir factoriser le code. +/// + +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -10,11 +16,22 @@ using System.Xml.Linq; namespace Model.Classes { + /// + /// Représente un objet du monde de One Piece appartenant à l'île d'Ohara. + /// [DataContract(Name = "objetohara")] + + /// + /// Événement déclenché lorsque la valeur d'une propriété change. + /// public class ObjetOhara : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; + + /// + /// Obtient ou définit le nom de l'objet. + /// [DataMember(Name = "nom")] private string? nom; public string? Nom { @@ -26,6 +43,10 @@ namespace Model.Classes } } + + /// + /// Obtient ou définit le chemin de l'image représentant l'objet. + /// [DataMember(Name = "image")] private string? image; public string? Image { @@ -38,6 +59,10 @@ namespace Model.Classes } } + + /// + /// Obtient ou définit une valeur indiquant si l'objet est marqué comme favori. + /// [DataMember(Name = "estfavori")] private bool estfavori; public bool EstFavori { @@ -48,7 +73,13 @@ namespace Model.Classes } } - + + /// + /// Initialise une nouvelle instance de la classe avec le nom spécifié. + /// + /// Le nom de l'objet. + /// Le chemin de l'image représentant l'objet (par défaut : "baseimage.png"). + /// Indique si l'objet est marqué comme favori (par défaut : false). public ObjetOhara(string nom, string image = "baseimage.png", bool estFavori = false) { @@ -58,7 +89,12 @@ namespace Model.Classes EstFavori = estFavori; } - + + /// + /// Détermine si l'objet spécifié est égal à l'objet actuel. + /// + /// L'objet à comparer avec l'objet actuel. + /// true si les objets sont égaux ; sinon, false. public override bool Equals(object? obj) { @@ -75,17 +111,38 @@ namespace Model.Classes } + + + + /// + /// Retourne le code de hachage de l'objet. + /// + /// Le code de hachage de l'objet. + public override int GetHashCode() { return HashCode.Combine(Nom, Image,EstFavori); } + + + /// + /// Retourne une chaîne de caractères représentant l'objet actuel. + /// + /// Une chaîne de caractères représentant l'objet actuel. + public override string ToString() { return "ObjetOhara : " + Nom + " " +EstFavori+ " " + Image; } - protected void OnPropertyChanged([CallerMemberName] string? propertyName = null) + + /// + /// Déclenche l'événement PropertyChanged. + /// + /// Le nom de la propriété qui a changé (facultatif). + + protected void OnPropertyChanged([CallerMemberName] string? propertyName = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } diff --git a/Sources/Model/Classes/Personnage.cs b/Sources/Model/Classes/Personnage.cs index 594c7f0..1b6f589 100644 --- a/Sources/Model/Classes/Personnage.cs +++ b/Sources/Model/Classes/Personnage.cs @@ -1,14 +1,27 @@ -using System.Collections.ObjectModel; +/// \file Personnage.cs +/// \brief Contient la définition de la classe Personnage. +/// +/// La classe Personnage représente les différents personnages avec leur nom, épithète, leur prime, leur âge, leur taille, leur origine, leur biographie et une citation. +/// + +using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Runtime.Serialization; namespace Model.Classes { + /// + /// Représente un personnage de l'univers de One Piece. + /// [DataContract(Name = "personnage")] public class Personnage : ObjetOhara { + + /// + /// Obtient ou définit la prime du personnage. + /// [DataMember(Name = "prime")] private double prime; public double Prime { @@ -19,6 +32,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit l'épithète du personnage. + /// [DataMember(Name = "epithete")] private string? epithete; public string? Epithete { @@ -28,6 +45,10 @@ namespace Model.Classes epithete = value; } } + + /// + /// Obtient ou définit l'âge du personnage. + /// [DataMember(Name = "age")] private int age; public int Age { @@ -38,6 +59,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit la taille du personnage. + /// [DataMember(Name = "taille")] private double taille; public double Taille { @@ -48,6 +73,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit l'origine du personnage. + /// [DataMember(Name = "origine")] private string? origine; public string? Origine { @@ -58,6 +87,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit la biographie du personnage. + /// [DataMember(Name = "biographie")] private string? biographie; public string? Biographie { @@ -68,6 +101,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit la citation du personnage. + /// [DataMember(Name = "citation")] private string? citation; public string? Citation { @@ -78,6 +115,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit l'équipage auquel le personnage appartient. + /// [DataMember(Name = "equipage", EmitDefaultValue = false)] private Equipage? equipage; public Equipage? Equipage { @@ -87,26 +128,57 @@ namespace Model.Classes equipage = value; OnPropertyChanged(); } - } + } + + /// + /// Obtient la collection en lecture seule des fruits du démon détenus par le personnage. + /// [DataMember(Name = "fruit", EmitDefaultValue = false)] private ObservableCollection fruit = new ObservableCollection(); public IReadOnlyCollection Fruit { get=>fruit; } + + + /// + /// Ajoute un fruit du démon à la collection du personnage. + /// + /// Le fruit du démon à ajouter. public void AjouterFruit(FruitDuDemon? f) { if (f == null) return; fruit.Add(f); } + + + /// + /// Retire un fruit du démon de la collection du personnage. + /// + /// Le fruit du démon à retirer. public void RetierFruit(FruitDuDemon? f) { if (f == null) return; fruit.Remove(f); } + + + /// + /// Vide la collection des fruits du démon du personnage. + /// public void ViderFruit() => fruit.Clear(); - + /// + /// Initialise une nouvelle instance de la classe Personnage avec un nom et des informations supplémentaires. + /// + /// Le nom du personnage. + /// La prime du personnage. + /// L'épithète du personnage. + /// L'âge du personnage. + /// La taille du personnage. + /// L'origine du personnage. + /// La biographie du personnage. + /// La citation du personnage. public Personnage(string nom, double prime, string epithete, int age, double taille, string origine, string biographie, string citation) : base(nom) { if (prime < 0) @@ -135,12 +207,34 @@ namespace Model.Classes } + + + /// + /// Initialise une nouvelle instance de la classe Personnage avec un nom, des informations supplémentaires et une image. + /// + /// Le nom du personnage. + /// La prime du personnage. + /// L'épithète du personnage. + /// L'âge du personnage. + /// La taille du personnage. + /// L'origine du personnage. + /// La biographie du personnage. + /// La citation du personnage. + /// Le chemin de l'image du personnage. public Personnage(string nom, double prime, string epithete, int age, double taille, string origine, string biographie, string citation, string image) : this(nom, prime, epithete, age, taille, origine, biographie, citation) { if (String.IsNullOrWhiteSpace(image)) image = "baseimage.png"; Image = image; } + + + + /// + /// Détermine si l'objet spécifié est égal à l'objet actuel. + /// + /// L'objet à comparer avec l'objet actuel. + /// true si les objets sont égaux, sinon false. public override bool Equals(object? obj) { if (obj == null) return false; @@ -156,11 +250,24 @@ namespace Model.Classes } + + + /// + /// Retourne le code de hachage de l'objet actuel. + /// + /// Code de hachage calculé à partir des propriétés de l'objet. + public override int GetHashCode() { return HashCode.Combine(Prime, Epithete, Age, Origine,Biographie, Citation,Equipage,Fruit); } + + + /// + /// Retourne une chaîne qui représente l'objet actuel. + /// + /// Chaîne représentant l'objet actuel. public override string ToString() { return "Personnage : " + Nom + " " + EstFavori + " " + Prime + " " + Epithete + " " + Age + " " + Origine + " " + Biographie + " "+ Citation+" " +Equipage+" " + Fruit+" "+ Image;