0Pricing
C# Academy · Ders

Statik Yöntemler ve Alanlar

Türün kendisine ait üyeler tanımlayın.

Statik Yöntemler ve Alanlar, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

Statik ve Örnek

Bir örnek üyesi her nesneye aittir; statik üye ise sınıfın kendisine aittir. Statik üyenin tam olarak bir kopyası vardır ve bu kopya herkes tarafından paylaşılır.

using System;

class Counter
{
    public static int Total;   // shared
    public int Id;             // per instance
}

class Program
{
    static void Main()
    {
        Counter.Total = 5;
        Console.WriteLine("Shared Total: " + Counter.Total);
    }
}

Statik Alanları Tanımlama

Bir static alana örnek üzerinden değil, sınıf adı üzerinden erişilir: ClassName.Field.

using System;

class Bank
{
    public static decimal InterestRate = 0.05m;
}

class Program
{
    static void Main()
    {
        Console.WriteLine("Rate: " + Bank.InterestRate);
    }
}

Statik Yöntemler

Bir static yöntem, örnek olmadan çalışır. Onu sınıf üzerinden çağırırsınız. this olmadığı için örnek alanlarını kullanamaz.

using System;

class MathUtil
{
    public static int Square(int x)
    {
        return x * x;
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine(MathUtil.Square(7));
    }
}

Örnekler Arasında Paylaşılan State

Statik alanın tek bir kopyası olduğu için her örnek aynı değeri görür. Bu, sayaçlar ve paylaşılan yapılandırma için kullanışlıdır.

using System;

class Robot
{
    public static int Count;

    public Robot()
    {
        Count++;
    }
}

class Program
{
    static void Main()
    {
        new Robot();
        new Robot();
        new Robot();
        Console.WriteLine("Robots created: " + Robot.Count);
    }
}

Statik Yöntemler Örnek Verilerini Kullanamaz

Statik yöntemin this değeri yoktur; bu nedenle yalnızca parametreleri, yerel değişkenleri ve diğer statik üyeleri kullanabilir.

using System;

class Calculator
{
    public static int Add(int a, int b) => a + b;
    public static int Multiply(int a, int b) => a * b;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Calculator.Add(2, 3));
        Console.WriteLine(Calculator.Multiply(4, 5));
    }
}

Statik ve Örnek Üyeleri Birlikte Kullanma

Bir sınıf her iki türü de barındırabilir. Örnek yöntemleri statik üyeleri okuyabilir; ancak statik yöntemler örnek üyelerini okuyamaz.

using System;

class Account
{
    public static decimal Fee = 2m;
    public decimal Balance;

    public decimal NetBalance()
    {
        return Balance - Fee;   // instance method can read static
    }
}

class Program
{
    static void Main()
    {
        var a = new Account { Balance = 100m };
        Console.WriteLine("Net: " + a.NetBalance());
    }
}

Statik Sayaç Deseni

Her yeni nesneye statik bir sayaçtan kimlik atamak, statik alanların klasik bir kullanım alanıdır.

using System;

class Ticket
{
    private static int _next = 1;
    public int Number;

    public Ticket()
    {
        Number = _next++;
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine(new Ticket().Number);
        Console.WriteLine(new Ticket().Number);
        Console.WriteLine(new Ticket().Number);
    }
}

Statik Yardımcı Yöntemler

Statik yöntemler; biçimlendiriciler ve dönüştürücüler gibi yalnızca girdilerine bağlı, durumsuz işlemler için oldukça uygundur.

using System;

class Format
{
    public static string Money(decimal amount)
    {
        return "$" + amount.ToString("0.00");
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Format.Money(12.5m));
    }
}

Statikten Statik Çağırma

Statik yöntemler, herhangi bir örneğe ihtiyaç duymadan aynı sınıftaki diğer statik yöntemleri serbestçe çağırabilir.

using System;

class Geometry
{
    public static double CircleArea(double r) => Math.PI * Square(r);
    private static double Square(double x) => x * x;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Geometry.CircleArea(2).ToString("0.00"));
    }
}

Statik Alanlar Varlığını Sürdürür

Statik alan, yalnızca tek bir nesne boyunca değil, programın ömrü boyunca değerini korur. Bunu önbellekler veya sürekli güncellenen toplamlar için kullanın.

using System;

class Logger
{
    public static int MessageCount;

    public static void Log(string msg)
    {
        MessageCount++;
        Console.WriteLine("[" + MessageCount + "] " + msg);
    }
}

class Program
{
    static void Main()
    {
        Logger.Log("start");
        Logger.Log("working");
        Logger.Log("done");
    }
}

Hepsini Birleştirme

Statik üyeler sınıf genelindeki kavramları, yani paylaşılan oranları, sayaçları ve durumsuz yardımcıları modeller; örnek üyeleri ise nesneye özel verileri tutar.

using System;

class Order
{
    public static decimal TaxRate = 0.10m;
    public decimal Subtotal;

    public decimal Total() => Subtotal + Subtotal * TaxRate;
}

class Program
{
    static void Main()
    {
        var o = new Order { Subtotal = 200m };
        Console.WriteLine("Total: " + o.Total());
    }
}

Hızlı Kontrol

Statik üyeler hakkındaki anlayışınızı sınayın.

Özet

Statik üyeler sınıfa aittir ve tek bir paylaşılan kopyaya sahiptir; örnek üyeleri ise her nesneye aittir. Statik yöntemlerin this değeri yoktur ve örnek verilerine erişemez; ancak örnek kodu statik üyeleri okuyabilir. Statik üyeleri sayaçlar, paylaşılan yapılandırmalar ve durumsuz yardımcılar için kullanın.

using System;

class Demo
{
    public static int Shared;
    public int Own;
    public static void Bump() => Shared++;
}

class Program
{
    static void Main()
    {
        Demo.Bump();
        Demo.Bump();
        Console.WriteLine(Demo.Shared);
    }
}

Sıkça Sorulan Sorular

“Statik Yöntemler ve Alanlar” dersi ücretsiz mi?

Evet — “Statik Yöntemler ve Alanlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“Statik Yöntemler ve Alanlar” dersinde ne öğreneceğim?

Türün kendisine ait üyeler tanımlayın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Statik Yöntemler ve Alanlar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Statik Yöntemler ve Alanlar
  2. Yardımcı Programlar için Statik Sınıflar
  3. Sabitler ve readonly Alanları
  4. Statik ve Örnek Tasarımı
← C# Academy Sayfasına Dön