C# Dersleri 69 - Statik Kullanımı


C# Statik (Static) Anahtar Sözcüğü

Statik (static) anahtar sözcüğü, bir sınıfın özelliklerini (fields), metotlarını veya sınıfın kendisini, sınıfın nesnesi oluşturulmadan kullanılabilir hale getirmek için kullanılır. Statik üyeler, sınıfa ait olup tüm nesneler tarafından paylaşılır ve sınıfın bir örneğine bağlı değildir.

Statik Anahtar Sözcüğünün Kullanım Alanları

  • Statik Sınıflar: Sadece statik üyeler içeren sınıflar.
  • Statik Metotlar: Bir sınıfın örneği oluşturulmadan çağrılabilen metotlar.
  • Statik Özellikler (Fields): Sınıfa ait olan ve tüm nesneler arasında paylaşılan özellikler.
  • Statik Yapıcı (Static Constructor): Statik üyelerin başlatılması için kullanılan özel bir metot.

Statik Üyelerin Özellikleri

  • Statik üyeler, bir sınıfın tüm nesneleri tarafından paylaşılır.
  • Statik metotlar yalnızca statik üyelere erişebilir.
  • Statik üyeler, sınıfın adı kullanılarak çağrılır.

Statik Metot ve Özellik Örneği

Bir sınıfta statik bir metot ve özellik kullanımı:

using System;

class MathOperations
{
    // Statik özellik
    public static double Pi = 3.14159;

    // Statik metot
    public static double Square(double number)
    {
        return number * number;
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Statik özellik ve metot kullanımı
        Console.WriteLine($"Pi değeri: {MathOperations.Pi}");
        Console.WriteLine($"5'in karesi: {MathOperations.Square(5)}");
    }
}

Programın Çıktısı

Pi değeri: 3.14159
5'in karesi: 25

Statik Yapıcı (Static Constructor)

Statik yapıcı, sınıfın statik üyelerini başlatmak için kullanılır. Bu yapıcı yalnızca bir kez çalıştırılır ve parametre almaz. Aşağıda bir örnek verilmiştir:

class Database
{
    public static string ConnectionString;

    // Statik yapıcı
    static Database()
    {
        ConnectionString = "Server=myServer;Database=myDB;User=myUser;Password=myPassword;";
        Console.WriteLine("Statik yapıcı çalıştırıldı.");
    }

    public static void Connect()
    {
        Console.WriteLine("Bağlantı sağlandı: " + ConnectionString);
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Statik üyeler doğrudan kullanılabilir
        Database.Connect();
    }
}

Programın Çıktısı

Statik yapıcı çalıştırıldı.
Bağlantı sağlandı: Server=myServer;Database=myDB;User=myUser;Password=myPassword;

Statik Sınıflar

Statik sınıflar, yalnızca statik üyeler içerebilir ve örneği oluşturulamaz. Genellikle yardımcı işlevler için kullanılır

static class Utility
{
    public static void PrintMessage(string message)
    {
        Console.WriteLine($"Mesaj: {message}");
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Statik sınıf kullanımı
        Utility.PrintMessage("Merhaba, Dünya!");
    }
}

Programın Çıktısı

Mesaj: Merhaba, Dünya!

Statik ve Statik Olmayan Üyelerin Karşılaştırılması

Özellik Statik Üyeler Statik Olmayan Üyeler
Bağlılık Sınıfa aittir. Nesneye aittir.
Kullanım Sınıf adıyla çağrılır. Nesne üzerinden çağrılır.
Erişim Sadece diğer statik üyeler tarafından erişilebilir. Hem statik hem de statik olmayan üyeler tarafından erişilebilir.

Statik Kullanımın Avantajları

  • Ortak verilerin tüm nesneler arasında paylaşılmasını sağlar.
  • Nesne oluşturmadan kullanıldığından daha az bellek kullanır.
  • Yardımcı işlevler ve sabit değerler için idealdir.

Sonuç

C#'da statik anahtar sözcüğü, sınıflar ve üyeler arasında paylaşılabilir olan veri ve işlevselliği tanımlamak için güçlü bir araçtır. Statik üyeleri etkili bir şekilde kullanmak, kodunuzu daha düzenli ve performanslı hale getirebilir. Statik sınıflar ve metotlar, yardımcı işlevler veya genel özellikler için sıklıkla tercih edilir.