Akademi C# · Pelajaran

Kelas Statik untuk Utiliti

Kumpulkan fungsi pembantu dalam kelas statik.

Pelajaran 2 daripada 413 langkah

Kelas Statik untuk Utiliti ialah pelajaran Akademi C# percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Akademi C#, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Akademi C# merangkumi sejumlah 4 pelajaran.

Apakah Kelas Statik?

Kelas statik diisytiharkan dengan static class. Kelas ini hanya boleh mengandungi ahli statik dan tidak boleh dibuat instans. Kelas ini ialah tempat semula jadi untuk fungsi utiliti.

using System;

static class StringUtils
{
    public static string Shout(string s) => s.ToUpper() + "!";
}

class Program
{
    static void Main()
    {
        Console.WriteLine(StringUtils.Shout("hello"));
    }
}

Tidak Boleh Mencipta Instans

Anda tidak pernah menulis new untuk kelas statik. Semua capaian dilakukan terus 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 Ahli Statik Dibenarkan

Pengkompil menguatkuasakan supaya setiap ahli kelas statik bersifat statik. Medan instans atau pembina tidak dibenarkan.

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));
    }
}

Mengumpulkan Pembantu Berkaitan

Kelas statik mengumpulkan fungsi yang berkongsi tema, lalu memberikannya 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 Terbina dalam

Kelas .NET Math ialah kelas statik. Anda tidak pernah membuat instans daripadanya; anda hanya memanggil Math.Sqrt, Math.Max dan sebagainya.

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 Statik dengan Medan Statik

Kelas statik boleh menyimpan medan statik untuk pemalar atau konfigurasi dikongsi yang digunakan oleh kaedahnya.

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 Tulen

Kaedah utiliti paling sesuai dijadikan fungsi tulen: keluaran hanya bergantung pada masukan, tanpa state tersembunyi. Ini menjadikannya mudah dijangka dan boleh 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 Kaedah Utiliti

Pembantu statik boleh memanggil satu sama lain untuk membina operasi yang lebih besar daripada 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 Statik berbanding Ahli Statik dalam Kelas Biasa

Jika sesuatu jenis mengandungi hanya pembantu, jadikan keseluruhan kelas itu statik. Jika kelas tersebut menggabungkan pembantu dengan instans, kekalkan kelas biasa dengan beberapa ahli statik.

using System;

static class Convert2
{
    public static int FeetToInches(int feet) => feet * 12;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Convert2.FeetToInches(3) + " inches");
    }
}

Memastikan Utiliti Mudah Ditemui

Kumpulkan pembantu ke dalam kelas statik yang namanya jelas (DateUtils, StringUtils) supaya pembangun lain dapat menemuinya 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));
    }
}

Menggabungkan Kesemuanya

Kelas utiliti statik memusatkan logik tanpa state di sebalik nama yang jelas, lalu mengurangkan penduaan merentas pangkalan kod 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));
    }
}

Semakan Pantas

Uji pemahaman anda tentang kelas statik.

Imbas Kembali

Kelas statik (static class X) tidak boleh dibuat instans dan hanya boleh mengandungi ahli statik. Kelas ini ialah tempat standard untuk fungsi utiliti dan pemalar tanpa state, yang dikumpulkan di bawah nama yang deskriptif. Kelas Math terbina dalam ialah contoh yang biasa.

using System;

static class Util
{
    public static int Double(int n) => n * 2;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Util.Double(21));
    }
}
Percuma untuk bermula

Pelajari C# dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
93
Pelajaran
346

Soalan Lazim

Adakah pelajaran “Kelas Statik untuk Utiliti” percuma?

Ya — teks penuh “Kelas Statik untuk Utiliti” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Akademi C#, tingkat taraf kepada CoddyKit PRO. Kursus Akademi C# merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Kelas Statik untuk Utiliti”?

Kumpulkan fungsi pembantu dalam kelas statik. Anda berlatih Akademi C# menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Akademi C#?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Akademi C# di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Kelas Statik untuk Utiliti” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Akademi C# ini?

Ya. Setiap pelajaran Akademi C# menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Kaedah dan Medan Statik
  2. Kelas Statik untuk Utiliti
  3. Pemalar dan Medan readonly
  4. Reka Bentuk Statik berbanding Tika
← Kembali ke Akademi C#