Menu
Coddy logo textTech

Campi e proprietà

Fa parte della sezione Programmazione orientata agli oggetti del percorso C# di Coddy. Lezione 6 di 70.

I campi sono variabili dichiarate direttamente in una classe. Le proprietà sono membri che forniscono un accesso controllato ai campi tramite gli accessor get e set.

I campi memorizzano i dati direttamente

public class Person
{
    // Campi - memorizzazione diretta delle variabili
    private string name;
    private int age;
}

Le proprietà forniscono un accesso controllato con get e set

public class Person
{
    private string name;
    
    // Proprietà con campo sottostante
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

Proprietà implementate automaticamente (forma abbreviata)

public class Person
{
    // Proprietà implementata automaticamente
    public string Name { get; set; }
    public int Age { get; set; }
}

Le proprietà possono includere una logica di convalida

public class Person
{
    private int age;
    
    public int Age
    {
        get { return age; }
        set 
        { 
            if (value >= 0 && value <= 120)
                age = value;
        }
    }
}

Proprietà di sola lettura (solo accessor get)

public class Circle
{
    private double radius;
    
    public double Radius
    {
        get { return radius; }
    }
    
    // Proprietà calcolata di sola lettura
    public double Area
    {
        get { return Math.PI * radius * radius; }
    }
}

I campi sono in genere privati e vi si accede tramite proprietà. Le proprietà ti consentono di aggiungere logica, convalida e controllo sulle modalità di accesso o modifica dei dati. Le proprietà implementate automaticamente sono comode quando non hai bisogno di logica aggiuntiva.

challenge icon

Sfida

Medio

Crea una classe BankAccount che dimostri la differenza tra campi e proprietà:

  • Un campo privato balance per memorizzare il saldo del conto
  • Una proprietà implementata automaticamente AccountName
  • Una proprietà di sola lettura Balance che restituisce il campo del saldo
  • I metodi Deposit e Withdraw che modificano il campo privato

Provalo tu

using System;

class Program
{
    static void Main()
    {
        string accountName = Console.ReadLine();
        decimal initialBalance = decimal.Parse(Console.ReadLine());
        decimal depositAmount = decimal.Parse(Console.ReadLine());
        
        BankAccount account = new BankAccount(accountName, initialBalance);
        
        Console.WriteLine($"Account: {account.AccountName}");
        Console.WriteLine($"Initial Balance: ${account.Balance}");
        
        account.Deposit(depositAmount);
        Console.WriteLine($"After Deposit: ${account.Balance}");
        
        string result = account.Withdraw(2000);
        Console.WriteLine($"Withdraw attempt: {result}");
        Console.WriteLine($"Final Balance: ${account.Balance}");
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C# online