Neden birinci ve ikinci Yazma çalışıyor ama sonuncusu çalışmıyor? Bunların 3'üne de izin verip 1 mi, (int) 1 mi yoksa ben mi geçtiğimi tespit etmenin bir yolu var mı? Ve gerçekten neden sonuncusuna izin verilir? İkincisine izin verilir ama sonuncusu gerçekten aklımı başımdan alır.
Derleme hatasını gösterme demosu
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!?
}
}