Kelas Statis untuk Utilitas
Kelompokkan fungsi pembantu dalam kelas statis.
Kelas Statis untuk Utilitas adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.
Apa Itu Kelas Statis?
Kelas statis dideklarasikan dengan static class. Kelas ini hanya dapat berisi anggota statis dan tidak dapat dibuat sebagai instans. Kelas ini merupakan tempat alami untuk fungsi utilitas.
using System;
static class StringUtils
{
public static string Shout(string s) => s.ToUpper() + "!";
}
class Program
{
static void Main()
{
Console.WriteLine(StringUtils.Shout("hello"));
}
}Tidak Dapat Membuat Instans
Anda tidak pernah menulis new untuk kelas statis. Semua akses dilakukan langsung melalui nama kelas.
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));
}
}Hanya Anggota Statis yang Diizinkan
Kompilator memastikan bahwa setiap anggota kelas statis bersifat statis. Atribut atau konstruktor instans tidak diizinkan.
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));
}
}Mengelompokkan Pembantu yang Saling Berkaitan
Kelas statis mengelompokkan fungsi yang memiliki tema sama dan memberikan ruang nama yang jelas, seperti Validation.IsEmail(...).
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"));
}
}Kelas Math Bawaan
Kelas Math dalam .NET merupakan kelas statis. Anda tidak pernah membuat instansnya; Anda cukup memanggil Math.Sqrt, Math.Max, dan seterusnya.
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));
}
}Kelas Statis dengan Atribut Statis
Kelas statis dapat menyimpan atribut statis untuk konstanta bersama atau konfigurasi yang digunakan oleh metodenya.
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));
}
}Fungsi Murni
Metode utilitas paling baik dibuat sebagai fungsi murni: keluarannya hanya bergantung pada masukannya, tanpa state tersembunyi. Hal ini membuatnya mudah diprediksi dan diuji.
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));
}
}Menggabungkan Metode Utilitas
Pembantu statis dapat saling memanggil untuk membangun operasi yang lebih besar dari operasi-operasi yang lebih kecil.
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 "));
}
}Kelas Statis vs Anggota Statis dalam Kelas Biasa
Jika sebuah tipe hanya berisi pembantu, jadikan seluruh kelas bersifat statis. Jika kelas tersebut menggabungkan pembantu dan instans, pertahankan sebagai kelas biasa dengan beberapa anggota statis.
using System;
static class Convert2
{
public static int FeetToInches(int feet) => feet * 12;
}
class Program
{
static void Main()
{
Console.WriteLine(Convert2.FeetToInches(3) + " inches");
}
}Menjaga Utilitas Tetap Mudah Ditemukan
Kelompokkan pembantu ke dalam kelas statis dengan nama yang jelas (DateUtils, StringUtils) agar pengembang lain dapat menemukannya dengan mudah.
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));
}
}Menyatukannya
Kelas utilitas statis memusatkan logika tanpa state di balik nama yang jelas dan mengurangi pengulangan di seluruh basis kode Anda.
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));
}
}Pemeriksaan Singkat
Uji pemahaman Anda tentang kelas statis.
Ringkasan
Kelas statis (static class X) tidak dapat dibuat sebagai instans dan hanya dapat berisi anggota statis. Kelas ini merupakan tempat standar untuk fungsi utilitas dan konstanta tanpa state, yang dikelompokkan di bawah nama deskriptif. Kelas Math bawaan adalah contoh yang umum.
using System;
static class Util
{
public static int Double(int n) => n * 2;
}
class Program
{
static void Main()
{
Console.WriteLine(Util.Double(21));
}
}Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kelas Statis untuk Utilitas” gratis?
Ya — teks lengkap “Kelas Statis untuk Utilitas” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Kelas Statis untuk Utilitas”?
Kelompokkan fungsi pembantu dalam kelas statis. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Kelas Statis untuk Utilitas” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Metode dan Field Statis
- Kelas Statis untuk Utilitas
- Konstanta dan Field readonly
- Desain Statis vs Instance