Poiché le strutture sono tipi di valori, i loro dati sono copiati quando passati in un metodo come argomento. Esempio:Le strutture sono "più veloci" delle Classi - In generale o nel framework .NET?
int someInt = 7;
DoSomeMethod(someInt); // <-- This is passing the "value" 7.
Finora, facile da capire, e probabilmente stai chiedendo come la mia domanda è valida ... in modo da considerare il seguente:
public struct TimmysStructOfGoodness
{
public int SomeInt1;
public int SomeInt2;
public int SomeInt3;
// ... later that day ...
public int SomeInt999;
}
e poi, con riferimento alla seguente codice:
TimmysStructOfGoodness someStructOfGoodness = new blah blah blah...
DoSomeMethod(someStructOfGoodness); // <-- **HERE IS WHERE THE QUESTION APPLIES!**
Condivide la dichiarazione di cui sopra cercano di allocare diversi mega di ram di "copiare" il mio valore-tipo (struct)?
Se la risposta è sì - poi quando/dove è il confine tra "più veloce" e "lento"?
Se no, allora perché no? Perché quello che so dei tipi di valore, questo dovrebbe essere un problema.
ESCLUSIONE PRINCIPALE: So che questo non ha nulla a che fare con il perché si dovrebbe usare una struct verses una classe, e so che non creerò mai una struct con i campi 999 - questa è solo una questione di interni e budella sottostanti e simili :)
Da quando 999 int occupare diversi mega di RAM? :-) –
La tua 'struct' sarebbe circa 4k, non" parecchi meg ". –
Sapevo che qualcuno (qualcuno) stava per dirlo ... ma lo lasciò intenzionalmente. Ho pensato che tutti sappiano cosa sto dicendo. –