关于IComparable接口的一个问题
namespace IComparable接口
{
//声明一个接口
public interface IComparable
{
int CompareTo(object obj);
}
//声明一个实现接口的类
class MyClass : IComparable
{
//声明一个公有的字段成员
public int TheValue;
//实现接口中方法成员
public int CompareTo(object obj)
{
//将接口类型的变量的引用强制转换为MyClass类型
MyClass mc = (MyClass)obj;
if (this.TheValue < mc.TheValue) return -1;
if (this.TheValue > mc.TheValue) return 1;
return 0;
}
}
class Program
{
//声明一个方法,用于输出原始数组和排序后的数组
static void PrintOut(string s, MyClass[] mc)
{
Console.Write(s);
//遍历输出数组中的元素
foreach (var m in mc)
Console.Write("{0}", m.TheValue);
Console.WriteLine("");
}
static void Main( )
{
//声明并初始化数组
var myInt = new[] { 20, 4, 16, 9, 2 };
//创建Myclass对象的数组
MyClass[] mcArr = new MyClass[5];
for (int i = 0; i < 5; i++)
{
mcArr[i] = new MyClass();
mcArr[i].TheValue = myInt[i];
}
PrintOut("Initial Order: ",mcArr);
Array.Sort(mcArr);
&