Comment : différencier le passage d'un struct et le passage d'une référence de classe à une méthode (C#)

Guide de référence du programmeur C# 
Comment : différencier le passage d'un struct et le passage d'une référence de classe à une méthode (guide de programmation C#) 

Cet exemple explique que, lorsqu'un struct est passé à une méthode, une copie du struct est passée, mais lorsqu'une instance de classe est passée, une référence est passée.

Le résultat obtenu avec l'exemple de code suivant montre que seule la valeur du premier champ de classe a changé lorsque l'instance de classe est transmise à la méthode ClassTaker. Le champ de structure, lui, ne change pas lors de la transmission de son instance à la méthode StructTaker. Cela s'explique de la façon suivante : une copie de la structure est transmise à la méthode StructTaker, tandis qu'une référence à la classe est transmise à la méthode ClassTaker.

Exemple



C#
class TheClass
{
    public string willIChange;
}

struct TheStruct
{
    public string willIChange;
}

class TestClassAndStruct
{
    static void ClassTaker(TheClass c)
    {
        c.willIChange = "Changed";
    }

    static void StructTaker(TheStruct s)
    {
        s.willIChange = "Changed";
    }

    static void Main()
    {
        TheClass testClass = new TheClass();
        TheStruct testStruct = new TheStruct();

        testClass.willIChange = "Not Changed";
        testStruct.willIChange = "Not Changed";

        ClassTaker(testClass);
        StructTaker(testStruct);

        System.Console.WriteLine("Class field = {0}", testClass.willIChange);
        System.Console.WriteLine("Struct field = {0}", testStruct.willIChange);
    }
}

Sortie

Class field = Changed
Struct field = Not Changed

Voir aussi


Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/8b0bdca4(VS.80).aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

11 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-7282
Document créé le 10/11/06 20:20, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-8b0bdca4(VS.80).html Document affiché 6 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,78 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces

Tom Lehrer
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 00:51, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)