复制构造函数

时间:2015-07-10 10:21:24

标签: c# arrays multidimensional-array

我很少在程序中得到ArrayTypeMismatchException:

public Map(Map otherMap)
        {
            var cpyArr = new char[otherMap.PlayingField.GetLength(0), otherMap.PlayingField.GetLength(1)];
            Array.Copy(otherMap.PlayingField, cpyArr, otherMap.PlayingField.Length);
            PlayingField = cpyArr;

            var cpyTrans = new List<Transition>();

            foreach (var item in otherMap.Transitions)
            {
                cpyTrans.Add(new Transition(item.X1, item.Y1, item.D1, item.X2, item.Y2, item.D2));
            }

            Transitions = cpyTrans;
        }

PlayingField属性是一个二维char数组 这是输出:

  

未处理的异常:System.ArrayTypeMismatchException :(类型:   源= System.Char;目标= System.Char)

奇怪的是,这并不是偶尔发生的。 异常会在Array.Copy中抛出,但错误清楚地表明实际的类型匹配。
我该如何解决?

编辑:我还应该补充一点,该程序是使用当前的Mono版本编译并在Linux上运行的。但我无法在我的测试系统上重现错误。该程序应该在一个服务器系统上运行,我很遗憾地无法访问,也没有任何信息,除了它还运行linux。

0 个答案:

没有答案