Чому перший і другий записи працюють, але не останній? Чи є спосіб я дозволити всі 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
.