As others have noted, you have to insure that there is a consistent return type present in the conditional operator. (A subtle feature of C# is that when we must produce a type for an expression amongst several alternatives, the chosen alternative is always somewhere in the expression; we never "magic up" a type that didn't appear.)
If unusual facts about the conditional operator interest you, I recommend my articles on the subject:
http://blogs.msdn.com/b/ericlippert/archive/tags/conditional+operator/
I would add that this is a great opportunity to write an extension method:
static class MyExtensions
{
public static int? ParseInt(this string s)
{
int value;
return Int32.TryParse(s, out value) ? value : (int?)null;
}
}
And now you can just say
int? exitNum = fields[13].ParseInt();
which is much more pleasant to read.