Yardımcı Programlar için Statik Sınıflar
Yardımcı işlevleri statik sınıflarda gruplayın.
Yardımcı Programlar için Statik Sınıflar, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 2. 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 Sınıf Nedir
Bir statik sınıf, static class ile tanımlanır. Yalnızca statik üyeler içerebilir ve örneği oluşturulamaz. Yardımcı işlevler için doğal bir yerdir.
using System;
static class StringUtils
{
public static string Shout(string s) => s.ToUpper() + "!";
}
class Program
{
static void Main()
{
Console.WriteLine(StringUtils.Shout("hello"));
}
}Örnekler Oluşturulamaz
Statik bir sınıf için hiçbir zaman new yazmazsınız. Tüm erişimler doğrudan sınıf adı üzerinden yapılır.
using System;
static class MathUtils
{
public static int Cube(int x) => x * x * x;
}
class Program
{
static void Main()
{
// No instance needed
Console.WriteLine(MathUtils.Cube(3));
}
}Yalnızca Statik Üyelere İzin Verilir
Derleyici, statik sınıfın her üyesinin statik olmasını zorunlu kılar. Örnek alanlarına veya oluşturuculara izin verilmez.
using System;
static class Temperature
{
public static double ToFahrenheit(double c) => c * 9 / 5 + 32;
public static double ToCelsius(double f) => (f - 32) * 5 / 9;
}
class Program
{
static void Main()
{
Console.WriteLine(Temperature.ToFahrenheit(100));
Console.WriteLine(Temperature.ToCelsius(32));
}
}İlgili Yardımcıları Gruplama
Bir statik sınıf, ortak bir temaya sahip işlevleri gruplayarak onlara Validation.IsEmail(...) gibi açık bir ad alanı sağlar.
using System;
static class Validation
{
public static bool IsPositive(int n) => n > 0;
public static bool IsEmail(string s) => s.Contains("@") && s.Contains(".");
}
class Program
{
static void Main()
{
Console.WriteLine(Validation.IsPositive(5));
Console.WriteLine(Validation.IsEmail("a@b.com"));
}
}Yerleşik Math Sınıfı
.NET Math sınıfı statik bir sınıftır. Onun örneğini hiçbir zaman oluşturmazsınız; yalnızca Math.Sqrt, Math.Max ve benzerlerini çağırırsınız.
using System;
class Program
{
static void Main()
{
Console.WriteLine(Math.Max(3, 9));
Console.WriteLine(Math.Sqrt(144));
Console.WriteLine(Math.Round(3.14159, 2));
}
}Statik Alanlara Sahip Statik Sınıf
Statik bir sınıf, yöntemleri tarafından kullanılan paylaşılan sabitler veya yapılandırma için statik alanlar barındırabilir.
using System;
static class Pricing
{
public static decimal Tax = 0.08m;
public static decimal WithTax(decimal price) => price + price * Tax;
}
class Program
{
static void Main()
{
Console.WriteLine(Pricing.WithTax(100m));
}
}Saf İşlevler
Yardımcı yöntemler en iyi şekilde saf işlevler olarak yazılır: çıktı yalnızca girdilere bağlıdır ve gizli bir state içermez. Bu, onları öngörülebilir ve sınanabilir hâle getirir.
using System;
static class Geometry
{
public static double RectArea(double w, double h) => w * h;
public static double TriArea(double b, double h) => 0.5 * b * h;
}
class Program
{
static void Main()
{
Console.WriteLine(Geometry.RectArea(4, 5));
Console.WriteLine(Geometry.TriArea(6, 3));
}
}Yardımcı Yöntemleri Birleştirme
Statik yardımcılar birbirlerini çağırarak daha büyük işlemleri daha küçük işlemlerden oluşturabilir.
using System;
static class TextUtils
{
public static string Clean(string s) => s.Trim().ToLower();
public static string Slug(string s) => Clean(s).Replace(" ", "-");
}
class Program
{
static void Main()
{
Console.WriteLine(TextUtils.Slug(" Hello World "));
}
}Statik Sınıf ile Normal Sınıftaki Statik Üyelerin Karşılaştırılması
Bir tür yalnızca yardımcılardan oluşuyorsa tüm sınıfı statik yapın. Yardımcıları örneklerle bir arada barındırıyorsa bazı statik üyeleri olan normal bir sınıf olarak bırakın.
using System;
static class Convert2
{
public static int FeetToInches(int feet) => feet * 12;
}
class Program
{
static void Main()
{
Console.WriteLine(Convert2.FeetToInches(3) + " inches");
}
}Yardımcıların Kolayca Bulunabilmesini Sağlama
Diğer geliştiricilerin yardımcıları kolayca bulabilmesi için onları iyi adlandırılmış statik sınıflar (DateUtils, StringUtils) içinde gruplayın.
using System;
static class DateUtils
{
public static bool IsWeekend(DayOfWeek d) =>
d == DayOfWeek.Saturday || d == DayOfWeek.Sunday;
}
class Program
{
static void Main()
{
Console.WriteLine(DateUtils.IsWeekend(DayOfWeek.Sunday));
Console.WriteLine(DateUtils.IsWeekend(DayOfWeek.Monday));
}
}Hepsini Birleştirme
Statik yardımcı sınıflar, durumsuz mantığı açık bir adın arkasında merkezileştirerek kod tabanınızdaki yinelemeleri azaltır.
using System;
static class MoneyUtils
{
public static string Format(decimal amount) => "$" + amount.ToString("0.00");
public static decimal ApplyDiscount(decimal price, double pct) =>
price * (decimal)(1 - pct / 100);
}
class Program
{
static void Main()
{
decimal discounted = MoneyUtils.ApplyDiscount(80m, 25);
Console.WriteLine(MoneyUtils.Format(discounted));
}
}Hızlı Kontrol
Statik sınıflar hakkındaki anlayışınızı sınayın.
Özet
Bir statik sınıfın (static class X) örneği oluşturulamaz ve yalnızca statik üyeler içerebilir. Durumsuz yardımcı işlevler ve sabitler için standart yerdir; bunlar açıklayıcı bir ad altında gruplanır. Yerleşik Math sınıfı tanıdık bir örnektir.
using System;
static class Util
{
public static int Double(int n) => n * 2;
}
class Program
{
static void Main()
{
Console.WriteLine(Util.Double(21));
}
}Sıkça Sorulan Sorular
“Yardımcı Programlar için Statik Sınıflar” dersi ücretsiz mi?
Evet — “Yardımcı Programlar için Statik Sınıflar” 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.
“Yardımcı Programlar için Statik Sınıflar” dersinde ne öğreneceğim?
Yardımcı işlevleri statik sınıflarda gruplayı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 2. dersidir.
“Yardımcı Programlar için Statik Sınıflar” 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
- Statik Yöntemler ve Alanlar
- Yardımcı Programlar için Statik Sınıflar
- Sabitler ve readonly Alanları
- Statik ve Örnek Tasarımı