Mono was complaining about not knowing the type of the trinary. The Microsoft compiler should optomize this cast away