Tại sao Viết đầu tiên và thứ hai hoạt động nhưng không phải là cuối cùng? Có cách nào tôi có thể cho phép cả 3 người trong số họ và phát hiện nếu đó là 1, (int) 1 hoặc tôi đã truyền vào không? Và thực sự tại sao một người được phép nhưng cuối cùng? Cái thứ hai được cho phép nhưng không phải cái cuối cùng thực sự làm tôi suy nghĩ.
Bản trình diễn để hiển thị lỗi biên dịch
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
.