Differenza tra i parametri del metodo ref e out

mercoledì 21 gennaio 2009 - 13.09

kintaro Profilo | Junior Member

scusate ma nonostante è un po che programma in c# ci sono cose teoriche che mi sfuggono

Sia il parametro del metodo ref sia quello out modificano il valore della variabile anche dopo l'uscita dal controllo ...

ma la vera differenza tra i 2??
ho provato a fare il seguente esempio pratico (seppur molto limitato) ma non mi ha aiutato a capire

namespace esempioMetodo { class Program { static int Main() { int i = 0; int[] INT = { 0, 1, 2, 3, 4, 8 }; Console.WriteLine("i = " +i); Console.WriteLine("INT[0] = " + INT[5]); Console.WriteLine("...chiamo il mio metodo..."); MioMetodo(ref INT, ref i); Console.WriteLine("i = " + i); Console.WriteLine("INT[0] = " + INT[0]); MioMetodo(out i); Console.WriteLine("i = " + i); return 0; } static void MioMetodo(ref int[] INT,ref int I) { INT[0] = 100; I = 6; } static void MioMetodo(out int n) { n = 5; } } }

grazie in anticipo
Fabio

aiedail92 Profilo | Expert

Ciao

Sia il modificatore ref che out servono a passare una variabile come riferimento, quindi modificando la variabile all'interno della funzione, il cambiamento avviene anche sulla variabile passata. La sola differenza fra i due è che usando il modificatore out puoi passare una variabile non istanziata, questo serve per fornire valori di ritorno, mentre con ref la variabile deve essere inizializzata, in quanto ref serve per tipi di riferimento da usare come input nella funzione.

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5