Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C-'无法将字符串转换为整数:2174837884。'中断。似乎不知道我在哪里这么做?_C# - Fatal编程技术网

C# C-'无法将字符串转换为整数:2174837884。'中断。似乎不知道我在哪里这么做?

C# C-'无法将字符串转换为整数:2174837884。'中断。似乎不知道我在哪里这么做?,c#,C#,使用以下代码获取标题中提供的错误: var TopScores = await osuApi.GetScoresAsync(857477); 在GetScoresAsync上: public async Task<ReadOnlyCollection<Scores>> GetScoresAsync(long b, object u = null, Mods m = 0, int limit = 50) { var request = Create

使用以下代码获取标题中提供的错误:

var TopScores = await osuApi.GetScoresAsync(857477);
在GetScoresAsync上:

public async Task<ReadOnlyCollection<Scores>> GetScoresAsync(long b, object u = null, Mods m = 0, int limit = 50)
    {
        var request = CreateRequestGetScores(ApiKey, b, u, m, limit);
        var response = await request.GetResponseAsync();
        using (var stream = new StreamReader(response.GetResponseStream()))
        {
            return ParseGetScores(await new StreamReader(response.GetResponseStream()).ReadToEndAsync());
        }
    }

编辑:我无法准确指出错误所在的原因是因为此代码取自一个librarydll,我只能以自己的项目形式查看它,并且不能直接调试它。如果没有看到Scores类,很难说这是错误所在,但Scores可能有一个属性,可能如下所示:

public int Score { get; set;} 
您试图阅读的json可能有以下内容

Scores: [{ Score: 2174837884 },{Score: 2 }, ...]
JsonTextReader使用反射或其他方法初始化Scores类,当它看到值2174837884太大,无法放入int,而不是截断int时,它会抛出异常。int在c中可以保存的最大值是2147483647


希望您可以更改Scores类并将int设为long,否则您可能必须捕获此异常并找到一些方法来处理它。

new ScoresjsonReader您可以从json创建一个新的Scores对象。这很可能是你的错误。我想你应该使用long而不是ints。请给我们看一下分数构造函数和JSON。谢谢你的回答,伙计们,吉尔·贝茨:不确定我怎么不应该这样做,因为列表是基于分数的,没有看到任何其他方式将分数列表中的结果添加到艾米:似乎stackoverflows的评论字符限制太长了,hmm@T.Std对于像这样的额外新信息,我们希望您将信息放在那里。另一个选择是,如果您永远无法获得否定分数,则转到uint而不是int。-能够将分数上传到hastebin上!非常感谢您以前的投入!然而,我希望它像放一个int一样简单,这个库最初不是我制作的,所以我没有完全意识到我在看什么。链接断了。链接通常不好发布,因为它们不可靠。可能最好在问题中发布代码内部分数JSONTEXTREADER jsonReader{long Depth=jsonReader.Depth;while jsonReader.Read然后转到一个不相关的切换案例,但我能找到的关于分数定义方式的唯一参考只是一个内部调用@spectabularbob EDIT:代码片段聚在一行:s中
public int Score { get; set;} 
Scores: [{ Score: 2174837884 },{Score: 2 }, ...]