Properties and Encapsulation
Validation Properties
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.