首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于IComparable接口的一个有关问题

2013-11-21 
关于IComparable接口的一个问题namespace IComparable接口{//声明一个接口public interface IComparable{i

关于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);
            PrintOut("Initial Order: ",mcArr);
            Console.ReadKey();
        }
    }
 }
刚开始自学接口,照着书上的例子把这个代码敲上了,但是系统显示以上红色字体错误,提示“未能比较数组中的两个元素”。这段代码到底错在了什么地方?应该怎样改正?  我是初学者,还请各位帮帮忙,说详细点,谢谢
[解决办法]
不要声明接口,你画蛇添足了。

热点排行