Inconsistência no comportamento do operador ternário [duplicado]

Esta pergunta já tem uma resposta aqui:

Não é possível converter implicitamente o tipo 'int' para 'curto' [duplicado] 9 respostas

A expressão a seguir está ok

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

Mas quando você o usa como abaixo, ocorre um erro de sintaxe

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

Não é possível converter implicitamente o tipo 'int' para 'curto'. Existe uma conversão explícita (está faltando um elenco?)

Alguém pode explicar por que isso é assim?

Existe uma diferença entre comparar cadeia a cadeia e data e hora em um operador ternário, por quê?

Ficaria muito grato se você pudesse me ajudar.

questionAnswers(3)

yourAnswerToTheQuestion