Classi statiche per le utilità
Raggruppi le funzioni di supporto in classi statiche.
Classi statiche per le utilità è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 4 lezioni in totale.
Che cos'è una classe statica?
Una classe statica viene dichiarata con static class. Può contenere solo membri statici e non può essere istanziata. È il contenitore naturale per le funzioni di utilità.
using System;
static class StringUtils
{
public static string Shout(string s) => s.ToUpper() + "!";
}
class Program
{
static void Main()
{
Console.WriteLine(StringUtils.Shout("hello"));
}
}Non è possibile creare istanze
Non si scrive mai new per una classe statica. Tutti gli accessi avvengono direttamente tramite il nome della classe.
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));
}
}Sono consentiti solo membri statici
Il compilatore impone che ogni membro di una classe statica sia statico. I campi o i costruttori di istanza non sono consentiti.
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));
}
}Raggruppare le utilità correlate
Una classe statica raggruppa funzioni che condividono un tema, offrendo loro uno spazio dei nomi chiaro come 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"));
}
}La classe Math integrata
La classe .NET Math è una classe statica. Non la si istanzia mai: si chiamano semplicemente Math.Sqrt, Math.Max e così via.
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));
}
}Classe statica con campi statici
Una classe statica può contenere campi statici per costanti condivise o configurazioni usate dai suoi metodi.
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));
}
}Funzioni pure
I metodi di utilità sono ideali come funzioni pure: l'output dipende solo dagli input, senza stato nascosto. Questo li rende prevedibili e facili da testare.
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));
}
}Comporre metodi di utilità
Gli helper statici possono chiamarsi tra loro, costruendo operazioni più grandi a partire da operazioni più piccole.
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 "));
}
}Classe statica e membri statici in una classe normale
Se un tipo contiene solo helper, renda statica l'intera classe. Se combina helper e istanze, mantenga una classe normale con alcuni membri statici.
using System;
static class Convert2
{
public static int FeetToInches(int feet) => feet * 12;
}
class Program
{
static void Main()
{
Console.WriteLine(Convert2.FeetToInches(3) + " inches");
}
}Rendere facilmente individuabili le utilità
Raggruppi gli helper in classi statiche con nomi chiari (DateUtils, StringUtils), così gli altri sviluppatori possono trovarli facilmente.
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));
}
}Mettere tutto insieme
Le classi statiche di utilità centralizzano la logica senza stato dietro un nome chiaro, riducendo la duplicazione nella base di codice.
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));
}
}Verifica rapida
Metta alla prova la Sua comprensione delle classi statiche.
Riepilogo
Una classe statica (static class X) non può essere istanziata e può contenere solo membri statici. È il contenitore standard per funzioni di utilità e costanti senza stato, raggruppate sotto un nome descrittivo. La classe Math integrata è un esempio noto.
using System;
static class Util
{
public static int Double(int n) => n * 2;
}
class Program
{
static void Main()
{
Console.WriteLine(Util.Double(21));
}
}Domande Frequenti
La lezione «Classi statiche per le utilità» è gratuita?
Sì — il testo completo di «Classi statiche per le utilità» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 4 lezioni in totale.
Cosa imparerò in «Classi statiche per le utilità»?
Raggruppi le funzioni di supporto in classi statiche. Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C# Academy?
Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Classi statiche per le utilità»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C# Academy?
Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Metodi e campi statici
- Classi statiche per le utilità
- Costanti e campi readonly
- Progettazione statica e di istanza