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.