Inconsistencia de comportamiento del operador ternario [duplicado]

Esta pregunta ya tiene una respuesta aquí:

No se puede convertir implícitamente el tipo 'int' a 'corto' [duplicado] 9 respuestas

La siguiente expresión está bien

short d = ("obj" == "obj" ) ? 1 : 2;

Pero cuando lo usa como a continuación, se produce un error de sintaxis

short d = (DateTime.Now == DateTime.Now) ? 1 : 2;

No se puede convertir implícitamente el tipo 'int' a 'corto'. Existe una conversión explícita (¿te falta un yeso?)

¿Alguien puede explicar por qué esto es así?

¿Hay alguna diferencia entre comparar cadena a cadena y fecha y hora a fecha y hora en un operador ternario, por qué?

Estaría agradecido si pudieras ayudarme.