转换int?有条件的bo ..

Ste*_*a D 1 c# integer nullable conditional-statements

所以我在c#中创建了一个自定义的int.tryparse方法,试图让事情变得更简单,更清晰.这是方法:

    public static int? BoolIntParse(string number)
    {
        int temp;
        if (int.TryParse(number, out temp))
            return temp;
        else
            return null;
    }
Run Code Online (Sandbox Code Playgroud)

现在,我想尝试以这种方式使用它:

if(int? someNumber = BoolIntParse(someString))
{
    //do some stuff if its a number
}
else
   //throw some error 
Run Code Online (Sandbox Code Playgroud)

哪个似乎不起作用.我也尝试在condtional之前分配值,例如:

int? someNumber = BoolIntParse(someString);
if(someNumber)
{
    //do some stuff if its a number
}
else
   //throw some error 
Run Code Online (Sandbox Code Playgroud)

我收到错误消息 Cannot implicitely convert type int? to bool

所以这不是合法的c#.这是一个nullible int是为(这种情况)设计的,还是我没有正确地做到这一点?我对c#比较新.

jgl*_*uie 8

你想检查一下someNumber.HasValue.这应该是你的条件.

if (someNumber.HasValue)

或作为替代方案,由@BrokenGlass提及:

if (someNumber != null)

  • 或者`someNumber!= null`也行 (2认同)