Code Bye

请帮本人看看这段代码哪里错了

请帮本人看看这段代码哪里错了,应该怎么修改?但有一个前提必须使用CompareTo方法 谢谢
using System;
using System.Collections;
public class Temperature : IComparable
{
// The temperature value
protected string temperatureF;
public int CompareTo(object obj)
{
if (obj == null) return 1;

if (obj!= null)
return (((string)obj).temperatureF).CompareTo(this.temperatureF);
else
throw new ArgumentException(“Object is not a Temperature”);
}
public string Fahrenheit
{
get
{
return this.temperatureF;
}
set
{
this.temperatureF = value;
}
}

}
public class CompareTemperatures
{
public static void Main()
{
ArrayList temperatures = new ArrayList();
// Initialize random number generator.
Random rnd = new Random();
// Generate 10 temperatures between 0 and 100 randomly.
Temperature a = new Temperature();
a.Fahrenheit = “Oded”;
temperatures.Add(a);
Temperature b = new Temperature();
a.Fahrenheit = “edf”;
temperatures.Add(b);
Temperature c = new Temperature();
c.Fahrenheit = “afjg”;
temperatures.Add(c);
Temperature d = new Temperature();
d.Fahrenheit = “Aog”;
temperatures.Add(d);

// Sort ArrayList.
temperatures.Sort();
foreach (Temperature temp in temperatures)
Console.WriteLine(temp.Fahrenheit);
}
}

解决方案

20

谁给你说的可以这样做的?
ArrayList 只提供了

20

引用 4 楼 weikeli19 的回复:
Quote: 引用 2 楼 shingoscar 的回复:

((Temperature)obj).temperatureF.CompareTo(this.temperatureF);

不信你上机试试

// Generate 10 temperatures between 0 and 100 randomly.
Temperature a = new Temperature();
a.Fahrenheit = “Oded”;
temperatures.Add(a);
Temperature b = new Temperature();
a.Fahrenheit = “edf”;
temperatures.Add(b);
Temperature c = new Temperature();
c.Fahrenheit = “afjg”;


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明请帮本人看看这段代码哪里错了