c# - 无限循环?不明白为什么

标签 c# asp.net

我有一个函数,它接受roleID(作为 int),并将其与多维数组进行比较,以查看该数组是否包含该roleID。如果是,它会将 bool 设置为 true 并中断。如果不存在,则循环永远不会退出。我希望这是我忽略的愚蠢的事情,但现在我已经让几个不同的人检查过它。

我现在正在测试的userRoles 数组的大小是3。我可以打印 userRoles.GetLength(0) 并显示 3,这与数据库中的内容匹配。

这是代码:

public bool IsInRole(int roleID)
    {
        bool inRole = false;
        int i = userRoles.GetLength(0);
        for (int j = 0; j < i; j++)
        {
            if (Convert.ToInt32(userRoles[j, 0]) == roleID)
            {
                inRole = true;
                break;
            }
        }
        return inRole;
    }

TIA,
克里斯

最佳答案

您确定您没有误诊该症状,并且它确实陷入了循环吗?您在那里的代码看起来没有错误,我的第一个想法是您调用 IsInRole() 的地方没有正确处理“假”返回。

关于c# - 无限循环?不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2151650/

相关文章:

asp.net - 在 SQL Server 2008 中将两个日期与其他两个日期进行比较

c# - 汇总日期时间

asp.net - 保持网站在 IE、Chrome 和 Firefox 中看起来相同

c# - 在 c# dll 中调用 delphi5 过程

c# - 覆盖某些 .Net Framework 控件的绘图以更改其边框颜色?

c# - 什么是回调,它与更新面板控件有何不同?

c# - 从 Javascript 调用 C# 方法

jquery - 鼠标悬停时更改热点区域的颜色

C# 使用来自另一个文件和文本框的字符串创建多个 .txt 文件

c# - 旋转元素的缩放