【发布时间】:2015-02-13 07:55:14
【问题描述】:
如果我试试这个:
int count = int.TryParse(Console.ReadLine(), out count) ? count : default(int);
而不是这个:int count = int.Parse(Console.ReadLine());
问题已解决,但随后出现 Array out of range 错误。 我该怎么办?
using System;
using System.Linq;
using System.IO;
using System.Text;
using System.Collections;
using System.Collections.Generic;
class Player
{
static void Main(String[] args)
{
string[] inputs;
// game loop
while (true)
{
int count = int.Parse(Console.ReadLine()); // The number of current enemy ships within range
Console.Error.WriteLine("Count:" + count);
Enemy[] enemys = new Enemy[count];
for (int i = 0; i < count; i++)
{
inputs = Console.ReadLine().Split(' ');
enemys[i] = new Enemy(inputs[0], int.Parse(inputs[1]));
}
Array.Sort(enemys, delegate(Enemy en1, Enemy en2) {
return en1.Dist.CompareTo(en2.Dist);
});
Console.WriteLine(enemys[0].Name);
}
}
}
public class Enemy{
public string Name;
public int Dist;
public Enemy(string name, int dist){
this.Name = name;
this.Dist = dist;
}
}
【问题讨论】:
-
至少说一下错误发生在哪里,我想你没有得到
inputs的结果你应该检查这个有2个值 -
我的第一个问题是 int 计数的“输入字符串格式不正确”。我试图用 TryParse 方法解决。但是,它为“Console.WriteLine(enemys[0].Name);”行提供了另一个错误它是“数组索引超出范围。在播放器中”
-
请改进您的问题和问题标题。异常究竟发生在哪里?您的代码中已经更改了什么?
标签: c# unhandled-exception unhandled