Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

TQ – struct : paramètres

Thèmes des Questions – C# (C Sharp)



Les struct et les class sont différentes en C# , une class est un type reférence alors qu’un struct est un type valeur. Nous vous proposons de comparer le passage par valeur d’un objet de chacun de ce deux type.

Dans le programme de gauche on passe par valeur, comme paramètres à une méthode nommée changerNom, deux objets l’un nommé perso2 de type class l’autre nommé perso1 de type struct.

1°) Indiquez ce qu’affiche ce programme et expliquez pourquoi le champ nom de perso1 n’a pas changé après appel.

2°) Fournissez une surcharge de la méthode changerNom qui permette de changer effectivement après appel, les champs des deux paramètres perso1 net perso2 en utilisant le passage avec ref. Expliquez comment fonctionne l’appel de cette deuxième méthode en particulier sur le paramètre de type struct.

using System;
 struct Individu1 
 {
 public string nom;
 }
 class Individu2 
 {
 public string nom;
 }
 class Exercice
 {
 public static void changerNom(Individu1 perso1, Individu2 perso2)
 {
 perso1.nom = "Danton";
 perso2.nom = "Danton";
 }
 public static void Main( ) 
 {
 Individu1 personne_1 = new Individu1 ( );
 Individu2 personne_2 = new Individu2 ( );
 personne_1.nom="Robespierre";
 personne_2.nom="Lavoisier";
 Console.WriteLine("identité avant appel  : "+personne_1.nom);
 Console.WriteLine("identité avant appel  : "+personne_2.nom);
 changerNom( personne_1 , personne_2);
 Console.WriteLine("identité après appel  : "+personne_1.nom);
 Console.WriteLine("identité après appel  : "+personne_2.nom);
 Console.ReadLine();
 }
 }

Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More