Struct 🆚 Class

image

int a = 10;
int b = a;

a += 2;

print(b); // -> 10

Les type de bases sont en réalité des struc (équivalent au class) ce qui as pour effet que lorsque qu'on les utilisent, leur donnée son copié et leur références ne sont pas transmisents.

De plus, Struct a un impacte moins important sur le garbage collector, donc un impacte moins important sur la mémoire.

Class

public class CustomClassInt
{
    public int value;

    public CustomClassInt(int _value){
        this.value = _value;
    }
}

CustomClassInt a = new CustomClassInt(10);
// passe la référence de la class
CustomClassInt b = a;

a.value += 2;

print(b.value); // -> 12

Struct

public Struct CustomSAtructInt
{
    public int value;

    public CustomClassInt(int _value){
        this.value = _value;
    }
}

CustomSAtructInt a = new CustomSAtructInt(10);
CustomSAtructInt b = a;


a.value += 2;

print(b.value); // -> 10

Robin Moretti © 2020-Nov 19, 2021