int.TryParse = null if not numeric?

前端 未结 8 1493
太阳男子
太阳男子 2021-02-19 10:59

is there some way of return null if it can\'t parse a string to int?

with:

public .... , string? categoryID) 
{
int.TryParse(categoryID, out categoryID);         


        
相关标签:
8条回答
  • 2021-02-19 11:34

    First of all, why are you trying to parse a string to an int and stick the result back into a string?

    The method signature is

    bool int.TryParse(string, out int)
    

    so you have to give a variable of type int as second argument. This also means that you won't get null if parsing fails, instead the method will simply return false. But you can easily piece that together:

    int? TryParse2(string s) {
        int i;
        if (!int.TryParse(s, out i)) {
            return null;
        } else {
            return i;
        }
    }
    
    0 讨论(0)
  • 2021-02-19 11:43

    Simplest and one-liner...

    int N = int.TryParse(somestring, out N) ? N : 0;
    

    It works 'cause it's evaluated left to right. Null not so easy.

    0 讨论(0)
提交回复
热议问题