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

超急明天就得交作业!初学者!请大神帮忙解决上这个错误

2013-02-25 
超急!明天就得交作业!菜鸟求助!请大神帮忙解决下这个异常 public class Judgement{public static bool isO

超急!明天就得交作业!菜鸟求助!请大神帮忙解决下这个异常
 public class Judgement
    {

        public static bool isOnSameLine(ArrayList positionarraylistR, ArrayList positionarraylistB)
        {
            try
            {
                ArrayList CombineArraylistContainer = new ArrayList();
                foreach (int i in positionarraylistR)
                    CombineArraylistContainer.Add(positionarraylistR[i]);
                foreach (int i in positionarraylistB)
                    CombineArraylistContainer.Add(positionarraylistB[i]);
                bool tag = true;
                for (int i = 0; i < CombineArraylistContainer.Count; i++)
                {
                    for (int j = i + 1; j < CombineArraylistContainer.Count; j++)
                    {
                        for (int k = j + 1; k < CombineArraylistContainer.Count; k++)
                        {
                            double z = (((double[])(CombineArraylistContainer[k]))[2] - ((double[])(CombineArraylistContainer[i]))[2]) * (((double[])(CombineArraylistContainer[k]))[1] - ((double[])(CombineArraylistContainer[j]))[1]) -
                                (((double[])(CombineArraylistContainer[k]))[2] - ((double[])(CombineArraylistContainer[j]))[2]) * (((double[])(CombineArraylistContainer[k]))[1] - ((double[])(CombineArraylistContainer[i]))[1]);
                            if (z == 0)
                                tag = false;
                        }
                    }


                }
                return tag;
            }
            catch (InvalidCastException)
            {
                MessageBox.Show("您输入的数据不符合要求", "提示");
                return false;
            }
        }



        public int[,] matchResult(ArrayList positionarraylistR, ArrayList positionarraylistB)
        {
            int[,] number = new int[Frm_Main.personNumber,2];
        for(int i = 0;i < positionarraylistR.Count;i ++)
            {
                for (int j = i; j < positionarraylistR.Count; j++)
                {
    int redJudgeCondition = 0;
                    int blueJudgeCondition = 0;
                    for (int k = 0; k < positionarraylistR.Count; k++)
                    {
                        double r2 = (((double[])(positionarraylistR[k]))[2] - ((double[])(positionarraylistR[i]))[2]) * (((double[])(positionarraylistR[k]))[1] - ((double[])(positionarraylistB[j]))[1]) -
                            (((double[])(positionarraylistB[k]))[2] - ((double[])(positionarraylistR[j]))[2]) * (((double[])(positionarraylistR[k]))[1] - ((double[])(positionarraylistR[i]))[1]);
                        double b2 = (((double[])(positionarraylistB[k]))[2] - ((double[])(positionarraylistR[i]))[2]) * (((double[])(positionarraylistB[k]))[1] - ((double[])(positionarraylistR[j]))[1]) -
                            (((double[])(positionarraylistB[k]))[2] - ((double[])(positionarraylistR[j]))[2]) * (((double[])(positionarraylistB[k]))[1] - ((double[])(positionarraylistR[i]))[1]);
    if(r2 > 0)
                            redJudgeCondition++;


    if(b2 > 0)
                            blueJudgeCondition++;
    }
                    if (redJudgeCondition == blueJudgeCondition)
                    {
                        double[] temp = new double[3];
    temp = (double[])positionarraylistB[i];
    positionarraylistB[i] = positionarraylistB[j];
    positionarraylistB[j] = temp;
    }
    }
    }
            for (int i = 0; i < positionarraylistR.Count; i++)
            {
        number[i,0] = i;
                number[i, 1] = ((int[])(positionarraylistB[i]))[0];
        }
        return number;
        }


这个类里面的函数,算法是对的,但是各个强制转换出问题了,InvalidCastException无法处理,求大神指教啊!明天就得交作业急得很啊,求救! 强制转换 InvalidCastException
[解决办法]
你把那个异常报告放上来啊
[解决办法]
你把一个本来3、5行就能写成的功能写了这么乱七八糟的一大堆。特别地,你居然还在使用ArrayList这个过时的东西,而不得不夹杂大量的强制类型转换。就这些破烂,根本没有修改的价值。好好把C#学一学,然后从头再写!
[解决办法]
确实有点没心看啊。

热点排行