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:
Yorum Gönder