Object-Oriented Programming/Properties/C Sharp
main.cs
edit/// <summary>
/// This program demonstrates use of the Temperature class.
/// </summary>
using System;
/// <summary>
/// Provides the main program code.
/// </summary>
class Program {
/// <summary>
/// Runs the main program.
/// </summary>
public static void Main (string[] args) {
var temperature = new Temperature(celsius: 37);
Console.WriteLine(temperature.Fahrenheit);
temperature = new Temperature(fahrenheit: 98.6);
Console.WriteLine(temperature.Celsius);
temperature = new Temperature();
temperature.Celsius = 37;
Console.WriteLine(temperature.Fahrenheit);
temperature = new Temperature();
temperature.Fahrenheit = 98.6;
Console.WriteLine(temperature.Celsius);
temperature = new Temperature();
Console.WriteLine(temperature.ToCelsius(98.6));
Console.WriteLine(temperature.ToFahrenheit(37));
}
}
temperature.cs
edit/// <summary>
/// Temperature converter. Provides temperature conversion functions. Supports Fahrenheit and Celsius temperatures.
/// </summary>
/// <remarks>
/// Examples:
/// var temperature = new Temperature(celsius: 37);
/// Console.WriteLine(temperature.Fahrenheit);
///
/// temperature = new Temperature(fahrenheit: 98.6);
/// Console.WriteLine(temperature.Celsius);
///
/// temperature = new Temperature();
/// temperature.Celsius = 37;
/// Console.WriteLine(temperature.Fahrenheit);
///
/// temperature = new Temperature();
/// temperature.Fahrenheit = 98.6;
/// Console.WriteLine(temperature.Celsius);
///
/// temperature = new Temperature();
/// Console.WriteLine(temperature.ToCelsius(98.6));
/// Console.WriteLine(temperature.ToFahrenheit(37));
///
/// References:
/// https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments
/// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-value-types
/// https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/properties
/// </remarks>
public class Temperature
{
private double _celsius;
private double _fahrenheit;
/// <summary>
/// Creates a Temperature object.
/// </summary>
public Temperature(double? celsius=null, double? fahrenheit=null)
{
if (celsius != null)
{
Celsius = (double)celsius;
}
if (fahrenheit != null)
{
Fahrenheit = (double)fahrenheit;
}
}
/// <summary>
/// Gets and sets Celsius temperature.
/// </summary>
public double Celsius
{
get
{
return _celsius;
}
set
{
_celsius = value;
_fahrenheit = ToFahrenheit(value);
}
}
/// <summary>
/// Gets and sets Fahrenheit temperature.
/// </summary>
public double Fahrenheit
{
get
{
return _fahrenheit;
}
set
{
_fahrenheit = value;
_celsius = ToCelsius(value);
}
}
/// <summary>
/// Converts Fahrenheit temperature to Celsius.
/// </summary>
public double ToCelsius(double fahrenheit)
{
return (fahrenheit - 32) * 5 / 9;
}
/// <summary>
/// Converts Celsius temperature to Fahrenheit.
/// </summary>
public double ToFahrenheit(double celsius)
{
return celsius * 9 / 5 + 32;
}
}
Try It
editCopy and paste the code above into one of the following free online development environments or use your own C Sharp compiler / interpreter / IDE.