// This program creates instances of the Temperature class to convert Celsius
// and Fahrenheit temperatures.
//
// References:
// https://www.mathsisfun.com/temperature-conversion.html
// https://en.wikibooks.org/wiki/C_Sharp_Programming
using System;
public class Objects
{
public static void Main(String[] args)
{
Temperature temp1 = new Temperature(celsius: 0);
Console.WriteLine("temp1.Celsius = " + temp1.Celsius.ToString());
Console.WriteLine("temp1.Fahrenheit = " + temp1.Fahrenheit.ToString());
Console.WriteLine("");
temp1.Celsius = 100;
Console.WriteLine("temp1.Celsius = " + temp1.Celsius.ToString());
Console.WriteLine("temp1.Fahrenheit = " + temp1.Fahrenheit.ToString());
Console.WriteLine("");
Temperature temp2 = new Temperature(fahrenheit: 0);
Console.WriteLine("temp2.Fahrenheit = " + temp2.Fahrenheit.ToString());
Console.WriteLine("temp2.Celsius = " + temp2.Celsius.ToString());
Console.WriteLine("");
temp2.Fahrenheit = 100;
Console.WriteLine("temp2.Fahrenheit = " + temp2.Fahrenheit.ToString());
Console.WriteLine("temp2.Celsius = " + temp2.Celsius.ToString());
}
}
// This class converts temperature between Celsius and Fahrenheit.
// It may be used by assigning a value to either Celsius or Fahrenheit
// and then retrieving the other value, or by calling the ToCelsius or
// ToFahrenheit methods directly.
public class Temperature
{
double _celsius;
double _fahrenheit;
public double Celsius
{
get
{
return _celsius;
}
set
{
_celsius = value;
_fahrenheit = ToFahrenheit(value);
}
}
public double Fahrenheit
{
get
{
return _fahrenheit;
}
set
{
_fahrenheit = value;
_celsius = ToCelsius(value);
}
}
public Temperature(double? celsius = null, double? fahrenheit = null)
{
if (celsius.HasValue)
{
this.Celsius = Convert.ToDouble(celsius);
}
if (fahrenheit.HasValue)
{
this.Fahrenheit = Convert.ToDouble(fahrenheit);
}
}
public double ToCelsius(double fahrenheit)
{
return (fahrenheit - 32) * 5 / 9;
}
public double ToFahrenheit(double celsius)
{
return celsius * 9 / 5 + 32;
}
}