209 messaggi dal 23 agosto 2007
Salve,

Nel code behind [C#] di un'applicatione web utilizzo dei metodi che ricevono un oggetto List passato per riferimento anzichè per valore.
In tal modo posso operare direttamente sulla lista senza doverla poi restituire "modificata" (come nel caso del passaggio per valore).

Ora tuttavia mi sorge un dubbio: il passaggio per riferimento "punta" direttamente alla locazione di memoria allocata per la variabile.

Nel caso di un'applicazione distribuita, anche tali riferimenti a locazioni di memoria sono isolati nel thread di ciascun utente che accede la relativa pagina, oppure vi potrebbero essere dei problemi qualora due utenti si collegassero contemporaneamente per utilizzare lo stesso metodo?

Grazie
3.939 messaggi dal 28 gennaio 2003
Nel code behind [C#] di un'applicatione web utilizzo dei metodi che ricevono un oggetto List passato per riferimento anzichè per valore.
In tal modo posso operare direttamente sulla lista senza doverla poi restituire "modificata" (come nel caso del passaggio per valore).



Senti, spieghi cosa vuol dire questo? Passando un oggetto list per valore, si può modificarla in ogni modo.
209 messaggi dal 23 agosto 2007
pietro09 ha scritto:
Senti, spieghi cosa vuol dire questo? Passando un oggetto list per valore, si può modificarla in ogni modo.

public void mioMetodo(ref List myList)
{
  //le modifiche che faccio qui si riflettono direttamente nella lista 
  //passata come argomento senza che debba restituire la lista al chiamante
}

che invoco passando la mia lista per riferimento e non per valore:

List lista = new List();
lista.add(1);
lista.add(2);
lista.add(3);

mioMetodo(ref lista);
3.939 messaggi dal 28 gennaio 2003
1234
Modificato da pietro09 il 16 marzo 2010 13.43 -
3.939 messaggi dal 28 gennaio 2003
In questo caso hai ragione, ho visto meglio il codice
209 messaggi dal 23 agosto 2007
Ragione in che senso?

L'accesso al metodo (e quindi alla locazione di memomria) rimane in ogni caso confinato all'interno del thread dell'utente?
Quindi non ci sono problemi nel caso di due accessi concorrenti allo stesso metodo o alla variabile passata per riferimento?
3.939 messaggi dal 28 gennaio 2003
Io non ho mai avuto problemi a passare per riferimento.
209 messaggi dal 23 agosto 2007
ok, grazie per la risposta

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.