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);
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;
}
}
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.