int.TryParse = null if not numeric?
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;
}
}
Here's a proper use of Int32.TryParse
:
int? value;
int dummy;
if(Int32.TryParse(categoryID, out dummy)) {
value = dummy;
}
else {
value = null;
}
return value;