double? test = true ? null : 1.0;
In my book, this is the same as
if (true) { test = null; } else { test = 1.0; }
The left hand side of the assignment is not used when deducing the type of an ?: expression.
In b ? A : B, the types of A and B must either be the same, or one must be implicitly convertible to the other.
b ? A : B
A
B