Kelas Statik untuk Utiliti
Kumpulkan fungsi pembantu dalam kelas statik.
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));
}
}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
- Kaedah dan Medan Statik
- Kelas Statik untuk Utiliti
- Pemalar dan Medan readonly
- Reka Bentuk Statik berbanding Tika