gpt4 book ai didi

C# Noob 有一个问题 : Int assignment not working as expected

转载 作者:太空狗 更新时间:2023-10-29 23:19:00 25 4
gpt4 key购买 nike

我在这里尝试一个简单的比较,赋值不能像我希望的那样工作...这是代码,

int returnDateIndex(Paragraph para)
{
long firstIndex = 0;
for (int i = 0; i < para.Words.Count; i++)
{
if (para.Words[i].Text == "Second")
{
if (para.Words[i - 1].Text == "First")
{
firstIndex = para.Words[i].FirstSymbolPosition;
}
}
}
return (int)firstIndex;
}

我运行了我的调试器(在 VS 中),当调用该赋值时,右边的 int 等于 50,但左边的 int 保持等于 0。不知道我错过了什么。

此应用程序使用 Abbyy FineReader 9.0 SDK,FirstSymbolPosition 的文档说它返回一个只读的 Long

编辑:代码已去除所有功能,以便查看者更容易看出问题所在。我将不胜感激原始问题的答案以及任何其他代码困扰您的评论。

最佳答案

一个明显的错误是您期望返回条件匹配的 first 情况(因此 firstIndex 变量名称) ,但您实际上返回的是它们匹配的最后点。这也很糟糕,因为这意味着您在找到匹配项后会继续寻找。另一个是,如果句子中的第一个词是“第二”,您将尝试引用负面索引,这是非常糟糕的。试试这个:

int returnDateIndex(Paragraph para)
{
for (int i = 1; i < para.Words.Count; i++)
{
if (para.Words[i - 1].Text == "First" && para.Words[i].Text == "Second")
return (int)para.Words[i].FirstSymbolPosition;
}
return 0; // this is what your original code would have returned in a "not found" scenario
}

此代码修复了这两个错误,还完全回避了您的分配问题。

关于C# Noob 有一个问题 : Int assignment not working as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3188382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com