.NET Framework Definizione di classe


Esempio

Le classi ereditano da System.Object, sono tipi di riferimento e vivono nell'heap. Quando i tipi di riferimento vengono passati come parametro, vengono passati per riferimento.

public Class MyClass
{
    public int a;
    public int b;
}

Passato per riferimento significa che un riferimento al parametro viene passato al metodo e tutte le modifiche al parametro si rifletteranno al di fuori del metodo quando ritorna, poiché il riferimento è esattamente allo stesso oggetto in memoria . Usiamo lo stesso esempio di prima, ma prima "intaschiamo" l' int s in una classe.

MyClass instanceOfMyClass = new MyClass();
instanceOfMyClass.a = 5;
instanceOfMyClass.b = 6;

AddNumbers(instanceOfMyClass);

public AddNumbers(MyClass sample)
{
    int z = sample.a + sample.b; // z becomes 11
    sample.a = sample.a + 5; // now we changed a to be 10
    z = sample.a + sample.b; // now z becomes 16
} 

Questa volta, quando abbiamo cambiato sample.a a 10 , cambia anche il valore di instanceOfMyClass.a , perché è stato passato per riferimento . Passato per riferimento significa che un riferimento (anche a volte chiamato puntatore ) all'oggetto è stato passato al metodo, anziché una copia dell'oggetto stesso.

Ricorda, i tipi di riferimento vivono nell'heap e vengono passati per riferimento.