using System.Collections;
public class Temperature : IComparable
protected double temperatureF;
public int CompareTo(object obj) {
if (obj == null) return 1;
Temperature otherTemperature = obj as Temperature;
if (otherTemperature != null)
return this.temperatureF.CompareTo(otherTemperature.temperatureF);
throw new ArgumentException("Object is not a Temperature");
return this.temperatureF;
this.temperatureF = value;
return (this.temperatureF - 32) * (5.0/9);
this.temperatureF = (value * 9.0/5) + 32;
public class CompareTemperatures
public static void Main()
Temperature t1 = new Temperature();
Temperature t2 = new Temperature();
Console.Write(t1.CompareTo(t2));
Console.WriteLine("\n-------------");
ArrayList temperatures = new ArrayList();
Random rnd = new Random();
for (int ctr = 1; ctr <= 10; ctr++)
int degrees = rnd.Next(0, 100);
Temperature temp = new Temperature();
temp.Fahrenheit = degrees;
Console.WriteLine("Before sorting:");
foreach (Temperature temp in temperatures)
Console.WriteLine(temp.Fahrenheit);
Console.WriteLine("-------------");
string str = "invalid object";
catch (ArgumentException ex) {
Console.WriteLine(ex.Message);
Console.WriteLine("-------------");
foreach (Temperature temp in temperatures)
Console.WriteLine(temp.Fahrenheit);