我很少在程序中得到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。