如何在C#中将整数转换为布尔值

时间:2016-07-25 08:02:19

标签: c# type-conversion typeconverter

我有存储过程返回:

  • 0 - 表中没有用户没有app角色
  • 1 - 是的,有需要的用户,角色,应用
  • 2 - 没有该名称的用户= false
  • 3 - 该名称没有任何角色= false

当我在C#中调用存储过程时,我得到:

  

无法隐式转换类型' bool'到' int'

public int IsUserInRole(IsUserInRole userInRole)
{
    var model =  _userRepository.CheckIfUserIsInRole(userInRole);
    if (model == 1)
    {
        return true;
    }
    else
    {
        return false;
    }
}

我需要使用它来验证已分配的角色的已记录用户,以便我可以稍后根据UserRole进行授权。

所以我需要来自SP的真或假,这意味着我需要将整数转换为布尔

我试过Better way to convert an int to a booleanhttp://www.dotnetperls.com/convert-bool-int,但我没有运气:)。

有任何建议如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

intVal为整数,boolVal为布尔变量,然后你就可以这样做:

boolVal = intVal==1;

查看您的方法,您已将返回值指定为int并尝试返回导致指定错误的boolen值。如果您将返回类型更改为bool,那么您的代码将按预期正常工作。您可以通过更简化的方式修改方法签名,如下所示:

public bool IsUserInRole(IsUserInRole userInRole)
{
    return _userRepository.CheckIfUserIsInRole(userInRole)==1;
}

答案 1 :(得分:1)

这将解决您的错误(使用bool返回类型而不是int)并且会缩短您的代码:

public bool IsUserInRole(IsUserInRole userInRole)
{
    return _userRepository.CheckIfUserIsInRole(userInRole) == 1;
}