C# orientato agli oggetti

Proprietà e incapsulamento in C#

In questa lezione userai proprietà con controlli per proteggere un oggetto dai valori non validi.

Introduzione

L'incapsulamento (encapsulation) significa tenere i dati dentro l'oggetto e permettere di modificarli solo in modi controllati. In C#, le proprietà permettono di scrivere i controlli al momento dell'assegnazione, mentre chi usa l'oggetto continua a usare una sintassi semplice, come per una normale variabile.

Il campo _price è private, quindi dall'esterno non si può accedervi direttamente. La proprietà Price legge e scrive tramite questo campo, e la parte set accetta solo valori non negativi, lanciando ArgumentOutOfRangeException se il prezzo è negativo. Così un Product non ha mai un prezzo sbagliato, e il valore 19.95 viene stampato normalmente.

Esempio C# eseguibile

C#
Esegui il codice →
Program.cs
using System;

class Product
{
    private decimal _price;
    public decimal Price
    {
        get => _price;
        set => _price = value >= 0 ? value : throw new ArgumentOutOfRangeException();
    }
}

class Program
{
    static void Main()
    {
        var product = new Product { Price = 19.95m };
        Console.WriteLine(product.Price);
    }
}
Risultato dell'esecuzione
19.95

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide