![]()
C# programlama dilinde ref ve out kullanmına geçmeden olayın teorik kısmını bilmek daha bilinçli kullanım bu linkteki makaleyi okuyabilirisniz.
Geliştirme yaparken tanımlamış olduğumuz parametre alan metodları kullanmak istediğimizde ilgili metoda parametre geçme işlemi 2 yolla yapılır “pass by value” dediğimiz normal gönderme birde “pass by reference“.dediğimiz orjinal değerin taşınması.
pass by value => Methoda değer gönderirken o değerin kopyasını alır ve yapılan değişiklikden etkilenir.
pass by reference => Metoda orjinal kopyası oluşturularak gider ve metod içerisinde o değişkenle ilgili yapılan değişikliklerden orjinal değer etkilenmez.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Program { static void Main(string[] args) { decimal KdvUcreti = 250; decimal AlacakUcreti = KdvUcreti; Console.WriteLine(“Kdv ücreti : “ + KdvUcreti); // Output 250 ₺ Console.WriteLine(“Alacak Ücreti : “ + AlacakUcreti); //Output 250 ₺ } } |
Yukarıda AlacakUcreti , KdvUcreti değeri değil kendi değeridir. Yani bu duurmda herkesin kendi değeri var.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
static void Main(string[] args) { decimal KdvUcreti = 250; ref decimal AlacakUcreti = ref KdvUcreti KdvUcreti *= 18; Console.WriteLine(“Alacak Ücreti : “ + AlacakUcreti); //Output 4500 ₺ AlacakUcreti -= 200; Console.WriteLine(“Kdv Ücreti : “ + KdvUcreti); //Output 4300 ₺ } |
Yukarda ref anahtar kelimesiyle KdvUcretinde hesaplanan 4500 ₺ yi AlacakUcreti ne taşındı ve onun üzerinde işlem yapıldı. Çünkü ikiside aynı bellek adresinden beslenmektedir. Eğer ref kullanılmamış olsaydı KdvUcreti 4500 ₺ ve AlacakUcreti de 250 ₺ olacaktı. Bu şekilde ref kullanarak değişmeden aktarmak istediğiniz değerleri bi methoda yada istediğiniz bir hesaplamaya aktarabilirsiniz.
Bir sonraki makalede görüşmek üzere sağlıcakla kalın…








Bir yanıt yazın