Mengapa Tulis pertama dan kedua berfungsi tetapi bukan yang terakhir? Apakah ada cara saya bisa mengizinkan mereka bertiga dan mendeteksi apakah itu 1, (int) 1 atau saya lewat? Dan benar-benar mengapa satu diperbolehkan tetapi yang terakhir? Yang kedua diizinkan tetapi bukan yang terakhir benar-benar menghantam pikiran saya.
Demo untuk menampilkan kesalahan kompilasi
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
.