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.
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)}"); } }
Pi değeri: 3.14159 5'in karesi: 25
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(); } }
Statik yapıcı çalıştırıldı. Bağlantı sağlandı: Server=myServer;Database=myDB;User=myUser;Password=myPassword;
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!"); } }
Mesaj: Merhaba, Dünya!
Ö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. |
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.