C# 8.0 – Static Local Functions

Merhaba,

C# 7.0 ile hayatımıza giren Local Function yapıları ile metot içerisinde metot tanımlayabiliyorduk. Bunun üzerine C# 8.0 ile de Local Functionlar static özellik kazanmış, Static Local Function şeklinde karşımıza gelmiş bulunmaktadırlar.

Şimdi hiç vakit kaybetmeksizin aşağıda tanımlanmış olan Local Function’ı ele alarak konumuza başlayalım;

        void X(int a)
        {
            int b = 5;
            Y();

            void Y()
            {
                Console.WriteLine($"a : {a} | b : {b}");
            }
        }

“X” metodu içerisinde tanımlanmış olan “Y” isimli Local Function görüldüğü üzere parametreyle birlikte gelen ve metot içerisinde tanımlanmış olan “a” ve “b” isimli değişkenlere erişebilmektedir. Dolayısıyla bu yerel değişkenlere olan erişim otomatik bir şekilde direkt olarak gerçekleştirilebilmektedir.

Lakin aşağıdaki gibi tanımlanmış olan Static Local Function’ı incelersek eğer;

        void X(int a)
        {
            int b = 5;
            Y(a, b);

            static void Y(int a, int b)
            {
                Console.WriteLine($"a : {a} | b : {b}");
            }
        }

Bu şekilde bir static yapılanma yerel değişkenlere erişilmesini engellemekte ve böylece erişim için harcanan maliyeti minimize etmiş olmaktadır. Tabi yerel değişkenlere erişilmek istendiği taktirde örnekte de olduğu gibi parametre olarak ilgili değişkenlerin değerleri static fonksiyon içerisine aktarılabilmektedir.

Netice olarak yapacağımız çıkarım şudur ki; static local function yapıları yerel değişkenlere erişememekte ve böylece erişim maliyetini minimize etmektedir ve bundan dolayı yapı içerisinde static olmayan fonksiyona nazaran daha performanslı çalışmaktadır.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

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

*

Copy Protected by Chetan's WP-Copyprotect.