: ; , - , ... , . null , ; int - , , null . int? int int? , null int?.
, :
public int? userId
{
get
{
int rv;
return int.TryParse(userIdString, out rv) ? rv : (int?) null;
}
}
, ; int?. int rv .
, :
return int.TryParse(userIdString, out rv) ? rv : new int?();
return int.TryParse(userIdString, out rv) ? rv : default(int?);
, "casted null" - , .
:
public static class Null
{
public static T? For<T>() where T : struct
{
return default(T?);
}
}
:
return int.TryParse(userIdString, out rv) ? rv : Null.For<int>();
, , :)