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
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);
}
}
19.95Esercitati con il debugger
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