Bu durumlarda metotların içine ref ifadesi ile parametreleri referans olarak geçeriz veya out parametresi ile metodun içinde tanımlanmış değeri parametre'den döndürürüz. Bu şu anlama gelir; Hafızadaki adresi belli değişken üzerinde çalışmaya devam et. O metodun içinde yapılan bütün değişiklikler çağrıldığı metotta tanımlı değişkende yapılacaktır. Kullanım kalıbı;
veriTipi MetotIsmi (veriTipi1 parametre1, ref veriTipi2 referansParametre2, out veriTipi3 referansParametre3)
{
return ifade;
}
Örnek:static void Main(string[] args)
{
string ad = "Gökalp";
int sayi = ad.Length;
Console.WriteLine("İsim: {0} Sayı: {1}", ad, sayi);
if(YaziyiDegistir(4, ref ad))
{
Console.WriteLine("İsim: {0} Sayı: {1}", ad, sayi);
SayiyiDegistir(ad, out sayi);
Console.WriteLine("İsim: {0} Sayı: {1}", ad, sayi);
}
Console.ReadKey();
}
public static void SayiyiDegistir(string text, out int number)
{
number = text.Length;
}
private static bool YaziyiDegistir(int uzunluk, ref string text)
{
bool sonuc = false;
if(text.Length > uzunluk)
{
text = text.Substring(0, uzunluk);
sonuc = true;
}
return sonuc;
}
Yukarıdaki örnekte ad değişkenini metot içine ref ile verdiğimizde ad değişkeninin hafızadaki adresini veriyoruz. Böylece text.Substring(0, uzunluk) satırında içeri verdiğimiz referansı 0-uzunluk arası kadar kestiğimizde isim değişkenini kesmiş oluyoruz. Bir yandan metottan dönen bool değerini kontrol amaçlı kullanırken bir yandan da isim değişkenini işliyoruz.ÇIKTI:
Hiç yorum yok:
Yorum Gönder