A property setter can validate a value before storing it.

Validation Properties

ValidationProperties.cs
using System;

class Thermostat
{
    private int temperature;

    public int Temperature
    {
        get { return temperature; }
        set
        {
            if (value < 50)
            {
                temperature = 50;
            }
            else if (value > 80)
            {
                temperature = 80;
            }
            else
            {
                temperature = value;
            }
        }
    }
}

class Program
{
    static void Main()
    {
        int requested = ;
        Thermostat thermostat = new Thermostat();
        thermostat.Temperature = requested;

        Console.WriteLine($"requested={requested}");
        Console.WriteLine($"stored={thermostat.Temperature}");
    }
}
using System;

class Thermostat
{
    private int temperature;

    public int Temperature
    {
        get { return temperature; }
        set
        {
            if (value < 50)
            {
                temperature = 50;
            }
            else if (value > 80)
            {
                temperature = 80;
            }
            else
            {
                temperature = value;
            }
        }
    }
}

class Program
{
    static void Main()
    {
        int requested = ;
        Thermostat thermostat = new Thermostat();
        thermostat.Temperature = requested;

        Console.WriteLine($"requested={requested}");
        Console.WriteLine($"stored={thermostat.Temperature}");
    }
}
using System;

class Thermostat
{
    private int temperature;

    public int Temperature
    {
        get { return temperature; }
        set
        {
            if (value < 50)
            {
                temperature = 50;
            }
            else if (value > 80)
            {
                temperature = 80;
            }
            else
            {
                temperature = value;
            }
        }
    }
}

class Program
{
    static void Main()
    {
        int requested = ;
        Thermostat thermostat = new Thermostat();
        thermostat.Temperature = requested;

        Console.WriteLine($"requested={requested}");
        Console.WriteLine($"stored={thermostat.Temperature}");
    }
}
validation Validation keeps object state inside allowed rules.