Почему первая и вторая запись работает, но не последняя? Есть ли способ, которым я могу разрешить все 3 из них и определить, было ли это 1, (int) 1 или я передал? И действительно, почему один разрешен, но последний? Второе позволение, но не последнее действительно поражает меня.
Демо, чтобы показать ошибку компиляции
using System;
class Program
{
public static void Write(short v) { }
static void Main(string[] args)
{
Write(1);//ok
Write((int)1);//ok
int i=1;
Write(i);//error!?
}
}
(short) i
.