public class Kahvi
{
// kuormitamme operaattorin +
public static MaitoKahvi operator +(Kahvi kahvi, Maito maito)
{
return new MaitoKahvi(kahvi,maito);
}
}
public class Maito
{
}
public class MaitoKahvi
{
private Kahvi kahvi;
private Maito maito;
public MaitoKahvi(Kahvi kahvi, Maito maito)
{
this.kahvi = kahvi;
this.maito = maito;
}
}
Ja nyt voimme laskea yhteen kahvi + maito
Kahvi kahvi = new Kahvi();
Maito maito = new Maito();
MaitoKahvi maitokahvi = kahvi + maito;
Operaattori toimii vain noin päin, toinen operaattorin kuormitus tarvitaan operaatiolle maito + kahvi. Järjestyksellä on väliä.