Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

C# 7.0 – Out Variables

Merhaba,

Bildiğiniz gibi elimizdeki bir değişken ile metot içerisinden değer çekme işlemini out keywordü sayesinde gerçekleştiriyoruz. C# 7.0 ile bu keywordün kullanımındaki bir sakatlık düzeltilmeye çalışılmıştır. Çalışılmıştır diyorum çünkü yapılan güncelleme birazdan da içerikte göreceğiniz gibi geliştirilmeyi ve release(piyasaya sürüldüğünde) edildiğinde tamamlanmayı beklemektedir.

Peki C# 7.0 yeniliğinden önce olan sakatlık nasıldı?
Hemen aşağıdaki kod bloğunu inceleyelim.

    class Program
    {
        static void Main(string[] args)
        {
            int Sayi = 0;
            OrnekMetot(out Sayi);
            Console.WriteLine(Sayi);

            Console.Read();
        }

        static public void OrnekMetot(out int Sayi)
        {
            Sayi = 3;
        }
    }

“OrnekMetot” metodunda olduğu gibi bir değişkeni fiziksel bir şekilde out parametre olarak vermemiz gerektiğinde ilgili değişkeni önceden tanımlamak zorunda kalıyorduk ve parametre kısmında oluşturmamıza izin verilmiyordu.

İşte bu durum çoğu kez Dummy Code görüntüsü vermekteydi. Bence yazılan kod satırlarındaki estetik ve ahengi bu tarz lüzumsuz sınırlılıklar bozmakta ve okunabilirlikten de öte kodun görünüş geçerliliğini düşürmektedir. Bundan dolayıdır ki, bu tarz zahiren etkili zayıflıkları sakatlık olarak nitelendirmekteyim.

Velhasıl C# 7.0 bu duruma nasıl bir yenilik getirdi inceleyelim.

C# 7.0 yeniliğinden sonra Out Variables

    class Program
    {
        static void Main(string[] args)
        {
            OrnekMetot(out int Sayi);

            Console.Read();
        }

        static public void OrnekMetot(out int Sayi)
        {
            Sayi = 3;
        }
    }

Gördüğünüz gibi out parametrelerin değerini direkt olarak parantez içinde oluşturulan değişken sayesinde verebilmekteyiz. Ama burada şöyle bir durum vardır ki, bu yeniliği bir hiç yapmaktadır.
C# 7.0 - Out Variables
Dikkat ederseniz parantez içerisinde oluşturulan değişkenimize dışarıdan ulaşamamaktayız.

Eee hoca, nasıl ulaşacaz?” diye sorarsanız ulaşamayacaksınız.

Evet… Şuanda parametre olarak direkt değişkeni oluşturabiliyoruz ama o değişkene ulaşamıyoruz. Değişkene ulaşabilmek için ilgili metodun bir scope’a bağlanması gerekmektedir. Bu aşağıdaki gibi “bool” tipinde değer döndüren bir metodun if kontrolünde kullanılması gibi diğer kulandığınız yapıların scopeları olabilir.
C# 7.0 - Out Variables

Bu durum Visual Studio Preview 4’ün sınırlamasıdır. Out Variables, şuanda kullanıldığı scopelara handle(işlemek) edilememektedir. Bizim beklentimiz bu yeniliğin tam olarak olgunlaşması ve bir an önce bu bariz sakatlığın net bir şekilde son bulmasıdır.

Sonraki yazılar ve yeniliklerde görüşmek üzere…
İyi çalışmalar dilerim…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. 26 Nisan 2018

    […] ilgili satırda bir değişken tarafından metot içerisinden çıkarıp elde etmek istiyorsak out keywordünü […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir