This fails with a There is no implicit conversion between \'null\' and \'int\'
long? myVar = Int64.Parse( myOtherVar) == 0 ? null : Int64.Parse(
The Compiler tries to evaluate the expressions from left to right
long? myVar = Int64.Parse( myOtherVar) == 0 ? null : Int64.Parse( myOtherVar);
int64.parse method return a long value not a nullable long value. so there is no conversion between null and Int64.Parse( myOtherVar);
So, try this one
long? myVar = Int64.Parse(myOtherVar) == 0 ? (long?) null : Int64.Parse(myOtherVar);
OR
long? myVar = Int64.Parse(myOtherVar) == 0 ? null : (long?) Int64.Parse(myOtherVar);