7 Mart 2016 Pazartesi

C# Değer ve Referans Tipli Metotlar

C#'ta bir metot'un değer ve referans tipinden veri alması arasında bir takım farklar vardır. Bu farkları aşağıdaki uygulamanın sonucunu gözlemleyerek görebilirsiniz. Referans tipli bir metot'ta göreceğiniz gibi kullanılan dizinin elemanları tek tek kopyalanamıyor, kopyalanan kısım sadece referansta yer alan adres oluyor. Dolayısı ile main metodunda diziye bir değer atansa dahi referans olarak bellekteki yerde farklı bir değer olduğu için metot veri olarak o kısmı kullanıyor.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication26
{
    class Program
    {
        //Değer tipi alan bir metot
        static void DegerTipi(int a)
        {
            a = 50;
        }

        //Referans tipinde veri alan metot
        static void ReferanMetot(string[] Deger)
        {
            Deger[0] = "100";
        }

        static void Main(string[] args)
        {
            //Metot yazılmadan önce ve sonra a değişkeni yazdırıldı.
            int a = 10;
            Console.WriteLine(a);
            DegerTipi(a);
            Console.WriteLine(a);

            string[] b = {"100","200"};
            Console.WriteLine(b[0]);
            ReferanMetot(b);

        }
    }
}


Hiç yorum yok: