配列の並べ替えを学習する際に、いくつかの例に従おうとしています。例では、Id を整数として使用してこのプロパティで並べ替えます。オブジェクトは int ではなく Guid データ型を使用するため、Created DateTime プロパティを使用して配列を並べ替えることにしました。これがコードです
Car.cs
public class Car:ICar,IComparable
{
... properties
int IComparable.CompareTo(object)
{
Car temp = obj as Car;
if (temp != null)
{
if (this.Created > temp.Created)
return 1;
if (this.Created < temp.Created)
return -1;
else
return 0;
}
else {throw new ArgumentException("Parameter is not a Car object");}
}
}
Garage.cs
public class Garage : IEnumerable
{
private Car[] cars = new Car[4];
public Garage()
{
cars[0] = new Car() { Id = Guid.NewGuid(), Name = "Corolla", Created = DateTime.UtcNow.AddHours(3), CurrentSpeed = 90 };
cars[1] = new Car() { Id = Guid.NewGuid(), Name = "Mazda", Created = DateTime.UtcNow.AddHours(2), CurrentSpeed = 80 };
}
...
}
Program.cs
static void Main(string[] args)
{
Garage cars = new Garage();
Console.WriteLine("sorting array:");
Array.Sort(cars); // error occured
}
エラー 2 引数 1: 'Car' から 'System.Array' に変換できません