CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

this ,get , set en C#

kaxes
kaxes
Niveau 4
24 juin 2010 à 14:48:37

Bonjour , je fais du C# depuis peu et j'ai du mal a comprendre a quoi servent : this , get , set, et les value

Voici le code que je ne comprend pas :

Humain.cs
namespace UnProgramme
{
class Humain
{
string nom ;
public string Nom
{
get {return nom ;}
}
public humain(string nom)
{
this.nom = nom ;
{
public void sepresenter()
{
System.Console.Writeline ("bonjour je m'apelle " +nom) ;
}
}
}

et la fin

program.cs
usign System ;
namespace UnProgramme
{
class program
{
static void Main(string[]args)
{
Humain heros = new Humain("xxxxx") ;
Console.ReadLine();
}
}
}

Merci pour votre aide
(dans ce code il n'y a pas de set et value mais je vais bientôt voir ces choses la donc pouvez vous m'aider)

Paulop
Paulop
Niveau 12
24 juin 2010 à 22:14:28

Alors :

this, c'est un mot clef permettant de designer l'instance courante d'un objet.
Exemple

class Personne
{
public string nom = ""
public Personne(string nom)
{
this.nom = nom;
}
}

Ici, tu utilises this dans le constructeur pour bien faire la différence entre la variable d'instance nom et la variable passé en paramètre.

On utilise this plus souvent pour passer une instance en paramètre. Et c'est tout. Dans ton exemple, théoriquement, j'aurai nommé mes variables autrement pour ne pas utiliser this, car c'est assez trompeur, on ne sait plus trop de quoi on parle vu que les variables ont le même nom, même si this est là pour faire la différence.
Exemple :

foo.bar(this);

Pour résumer, this c'est la représentation de ton objet dans sa propre classe.
Hors de la classe tu fais :

Type obj = new type();
obj.doIt();

Dans la classe tu feras :

this.doIt();

Ensuite les propriétés.

public int Age
{
get;
set;
}

Ca c'est une propriété par défaut, tu peux en faire à partir de C# 3 il me semble. Tout ce qu'elle fait, (et c'est possible de le voir avec de la réflexion) c'est créer deux méthodes et une variable:
get_age() et set_age(int v) qui travaillent avec une variable dont on ne connait pas le nom peu importe.
En fait, ça te permet de travailler plus vite avec une variable, en respectant l'encapsulation et compagnie.

Au lieu de faire obj.SetAge(10); tu n'as qu'à faire : obj.Age = 10;

C'est TOUT !

Ensuite si tu veux faire quelques vérifications, alors tu vas devoir écrire un peu plu de code comme dans tes exemples.

public int _Age = 0;
public int Age
{
set { _Age = value; }
get { return _Age; }
}

Ici comme au dessus, deux méthodes sont crées, et tu as cette fois décrit leur corps. Il faut savoir que ce que je viens d'écrire là est tout à fait similaire (voir identique) à ce que j'ai écrit plus haut (get; set;)

Si je le transforme en méthode ça équivaut à :

set_age(int value)
{
_Age = value;
}

get_age()
{
return _Age;
}

Comme tu peux le voir, c'est assez simple, et value n'est en fait qu'un mot clef qui correspond au paramètre de la méthode set.
L'utilité de décrire le corps d'un set ou d'un get est simple, tu peux faire quelques vérifications dans ton accesseur.
Exemple

set
{
if ( value > 10 ) _Age = value;
else _Age = 0;
}

Voila.

J'espère que tu as tout bien compris :-)))
Si tu as des questions, hésite pas.

kaxes
kaxes
Niveau 4
25 juin 2010 à 17:00:34

Merci , maintenant je comprend mieux .

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment