Jasna mi je razlika između vrednosnih i referentnih tipova, tj. da vrednosni čuvaju svoju vrednost na stacku, dok referencijalni čivaju memorijsku lokaciju koja ukazuje na heap.
Standardan način za kreiranje vrednosnih tipova je:
int i;
bool j;
double x;
Dok se referentni kreiraju sa new():
int[] i = new int[5];
StreamWriter sw = new StreamWriter();
Interesuje me koja je razlika kad se vrednosni tipovi kreiraju sa new():
int i = new int();
Radio sam neke primere gde sam kreirao vrednosni tip sa new() i on se i dalje ponašao kao vrednosni tip što se vidi iz ovog primera:
int i = new int();
i = 5;
int j = i;
j = 10;
Console.WriteLine(i);
Naravno rezultat je 5 jer i i j ne ukazuju na istu lokaciju u memoriji već imaju zasebne vrednosti.
Pitanje je da li postoji neka začkoljica u ovom drugom primeru ili je potpino isto:
int i;
i
int i = new int();
?