.NET Framework Types de valeur utilisés


Exemple

Les types de valeur contiennent simplement une valeur .

Tous les types de valeur sont dérivés de la classe System.ValueType , et cela inclut la plupart des types intégrés.

Lors de la création d'un nouveau type de valeur, la zone de mémoire appelée la pile est utilisée.
La pile augmentera en conséquence, de la taille du type déclaré. Ainsi, par exemple, un int contient toujours 32 bits de mémoire sur la pile. Lorsque le type de valeur n'est plus dans la portée, l'espace sur la pile sera libéré.

Le code ci-dessous illustre un type de valeur affecté à une nouvelle variable. Une structure est utilisée comme un moyen pratique de créer un type de valeur personnalisé (la classe System.ValueType ne peut pas être étendue autrement).

La chose importante à comprendre est que lors de l’attribution d’un type valeur, la valeur elle-même est copiée dans la nouvelle variable, ce qui signifie que nous avons deux instances distinctes de l’objet, qui ne peuvent pas s’affecter.

struct PersonAsValueType
{
    public string Name;
}

class Program
{
    static void Main()
    {
        PersonAsValueType personA;

        personA.Name = "Bob";

        var personB = personA;

        personA.Name = "Linda";

        Console.WriteLine(                // Outputs 'False' - because 
            object.ReferenceEquals(       // personA and personB are referencing 
                personA,                  // different areas of memory
                personB));                

        Console.WriteLine(personA.Name);  // Outputs 'Linda'
        Console.WriteLine(personB.Name);  // Outputs 'Bob'
    }
}