Это работает:
short value;
value = 10 > 4 ? 5 : 10;
Это работает:
short value;
value = "test" == "test" ? 5 : 10;
Это не работает:
short value;
string str = "test";
value = "test" == str ? 5 : 10;
Также это:
short value;
string str = "test";
value = "test".Equals(str) ? 5 : 10;
В последних двух случаях я получаю следующую ошибку:
Cannot implicitly convert type 'int' to 'short'.
An explicit conversion exists (are you missing a cast?)
Почему мне приходится записывать последние два случая, а не в двух первых случаях?