C# – Ref Keyword Nedir?
C#’daki ref anahtar sözcüğü, Metotlara veya metotlardan değer tiplerin referanslarını iletmek veya döndürmek için kullanılır. Diğer bir deyişle, referans yoluyla iletilen bir değerde yapılan herhangi bir değişikliğin, yalnızca taşıdığı değeri değil, adresteki (referans) değeriğinide değiştirdiğiniz için bu değişikliği yansıtacağı anlamına gelir. Aşağıdaki durumlarda uygulanabilir:
- Bir değeri referansına göre bir metoda iletmek.
- Değişkenin bir referansını döndürmek için bir metot imzası tanımlamak.
- Bir strcut’ı referans struct olarak bildirmek.
- Lokal referanslar için
Ref Kullanımı
Burada toplamDeger ve farkDeger olmak üzere iki metot tanımlıyoruz. Her iki metotda tanımlan değişkenler üzerinde işlem yapıp geri döndürür.
toplamDeger metodu, yalnızca parametresinin değerini değiştiren bir metotdur. Bu nedenle, toplamDeger’e “a” değişkeni parametre olarak iletildikten sonra metot bize ‘a’ değeri üzerinde işlem yapıp geri döndürdüğünde, tanımlanan a değeri ile bir fark oluşmadığını göreceksiniz.
farkDeger metodu ise parametrenin referansını kullanırken, ref anahtar kelimesi ile işlem yapar. Dolayısıyla değişken farkDeger için parametre olarak işlendikten sonra ‘b’ değeri görüntülendiğinde, değişikliklerin değerine yansıdığını görebilirsiniz.
Not: ref anahtar sözcüğü, metot tanımında ve metot çağrılırken kullanılmalıdır.
static void Main(string[] args)
{
// Değişken a and b
int a = 10, b = 12;
// Değişkenleri işlem öncesi görüntüle
Console.WriteLine("İşlem Öncesi a değişkeni: {0}", a);
Console.WriteLine("İşlem Öncesi b değişkeni: {0}", b);
Console.WriteLine();
Console.WriteLine();
// toplamDeger çağır.
toplamDeger(a);
// A değişkenini işlem sonrası görüntüle
Console.WriteLine("İşlem Sonrası a değişkeni: {0}", a);
// farkDeger metot çağır - ref ile
farkDeger(ref b);
// B değişkenini işlem sonrası görüntüle
Console.WriteLine("İşlem Sonrası b değişkeni: {0}", b);
// toplamDeger Tanımla
// Değer parametreli
int toplamDeger(int a)
{
return a += 10;
}
// farkDeger Tanimla
// Ref ile tanımla
void farkDeger(ref int b)
{
b -= 5;
}
}
Ekran Çıktısı
İşlem Öncesi a değişkeni: 10
İşlem Öncesi b değişkeni: 12
İşlem Sonrası a değişkeni: 10
İşlem Sonrası b değişkeni: 7
C# – Out Keywords Nedir?
Out, C#’ta değerleri referans türü olarak metotlara geçirmek için kullanılan bir anahtar kelimedir. Genellikle bir metot birden çok değer döndürdüğünde kullanılır.
ref anahtar kelimesine benzer. Ancak ref ve out anahtar sözcüğü arasındaki temel fark, ref’nin metot’a geçmeden önce değişkenin başlatılmasını gerektirmesidir. Ancak out parametresi, metota geçmeden önce değişkenlerin başlatılmasını gerektirmez. Ancak, çağıran metota bir değer döndürmeden önce, değişken çağrılan metotda başlatılmalıdır.
Ayrıca, out anahtar sözcüğünü bir parametre olarak kullanmak için, hem metot tanımında hem de çağrı yaptığımızda out anahtar sözcüğünü açıkça kullanmalıdır.
Not: Bir metotta birden fazla out parametresi olabilir.
Out Kullanımı
C#’da out ile bir kullanıcının metoda birden çok parametre göndermesine izin verilir ve metot birden çok değer döndürür.
İki adet değişken tanımlıyoruz ve bunları out parametresiyle bir metodun içerisine atıyoruz. Bu metodumuz bize toplam değeri olan iki adet parametre döndürür.
static void Main(string[] args)
{
// Değişken tanımlama
int i, j;
// i değişkenini metota iletelim.
// out anahtar kelimesiyle.
Toplama(out i, out j);
// i değişkenini görüntüleyelim.
Console.WriteLine("Toplama Değeri i: {0}", i);
Console.WriteLine("Toplama Değeri j: {0}", j);
// Out parametreli metot
// bu metot birden çok değer döndürür.
void Toplama(out int p, out int q)
{
p = 30;
q = 40;
p += p;
q += q;
}
}
Ekran Çıktısı
Toplama Değeri i: 60
Toplama Değeri j: 80
C# – Params Keywords Nedir?
Params, C#’ta önemli bir anahtar kelimedir. n sayıda değişlen alabilen bir parametre olarak yandi dizi olan parametrelerde kullanılır. Params kullanımının önemli noktaları:
- Programcının kullanılacak parametre sayısı hakkında herhangi bir ön bilgisinin olmadığı durumlarda.
- Yalnızca bir Params anahtar sözcüğüne izin verilir ve bir params anahtar sözcüğünden sonra işlev bildiriminde ek Paramlara izin verilmez.
- Hiçbir değer iletilmeyecekse, params’ın uzunluğu sıfır olacaktır.
Params Kullanımı
Params anahtar kelime kullanımını gösteren basit bir program yapalım. Parametre olarak int tipinde bir dizi alacaktır.
static void Main(string[] args)
{
// params parametreli metodumuz
int Toplam(params int[] Sayilar)
{
int toplam = 0;
// foreach loop
foreach (int i in Sayilar)
{
toplam += i;
}
return toplam;
}
// 5 değer ile metodumuzu çağıyoruz.
int y = Toplam(12, 13, 10, 15, 56);
// Sonuç
Console.WriteLine(y);
}
Comments are closed.