Στο .NET, όπως και στη Java, δεν υπάρχουν δείκτες, γι αυτό και δεν υπάρχουν και pointer ή reference operators.. Όλες οι αναφορές σε αντικείμενα είναι references. Όταν δημιουργείς μία λίστα, π.χ. List<Customer> η λίστα περιέχει πάντα references στα αντικείμενα. Επίσης, όταν περνάς μία παράμετρο περνάς πάντα reference στο αντικείμενο. Το keyword ref σε μία παράμετρο δεν σημαίνει ότι περνάς reference σε ένα αντικείμενο, αλλά ότι η παράμετρος χρησιμοποιείται τόσο ως input όσο και ως output παράμετρος. Μπορεί μέσα στη συνάρτηση σου να της αλλάξεις τιμή ώστε να αναφέρεται σε άλλο αντικείμενο.
Τα πράγματα διαφέρουν αν χρησιμοποιείς structs ή κάποιον από τους βασικούς τύπους, π.χ. int, decimal. Αυτές οι τιμές μεταφέρονται πάντα by value.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos