C# Dersleri 69 - Statik Kullanımı

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.

Bu içeriği beğendiyseniz paylaşarak destek olabilirsiniz!


Eğitim İçeriği

Eğitim C# Dersleri
Kategori Programlama Dili
Ders Adeti 69 Ders
Dil Türkçe
Güncelleme 04/2024
  • HTML Dersleri

    HTML Dersleri Sıfırdan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 19 Ders
    Dil Türkçe
    Güncelleme 12/2020
    Derse Başla
  • Java Dersleri

    Java Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 125 Ders
    Dil Türkçe
    Güncelleme 09/2020
    Derse Başla
  • CSS Dersleri

    CSS Dersleri Başlangıçtan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 49 Ders
    Dil Türkçe
    Güncelleme 10/2021
    Derse Başla
  • Java Örnek Projeler

    Java Örnek Projeler

    Kategori Programlama Dili
    Ders Süresi 20 Ders
    Dil Türkçe
    Güncelleme 10/2022
    Derse Başla
  • C# Dersleri

    C# Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 100 Ders
    Dil Türkçe
    Güncelleme 04/2024
    Derse Başla