0Pricing
C# Academy · Lezione

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

  1. Metodi e campi statici
  2. Classi statiche per le utilità
  3. Costanti e campi readonly
  4. Progettazione statica e di istanza
← Torna a C# Academy