Tôi đang gặp khó khăn khi hiểu điều này. Hãy xem xét ví dụ sau:C# - Các vấn đề với tính năng giải trí/unboxing/typecasting ints. Tôi không hiểu
protected void Page_Load(object sender, EventArgs e)
{
// No surprise that this works
Int16 firstTest = Convert.ToInt16(0);
int firstTest2 = (int)firstTest;
// This also works
object secondTest = 0;
int secondTest2 = (int)secondTest;
// But this fails!
object thirdTest = Convert.ToInt16(0);
int thirdtest2 = (int)thirdTest; // It blows up on this line.
}
Các lỗi cụ thể mà tôi có được trong thời gian chạy là Specified cast is not valid.
Nếu tôi QuickWatch (int)thirdTest
trong Visual Studio, tôi nhận được một giá trị của Cannot unbox 'thirdTest' as a 'int'
.
Điều gì đang xảy ra ở đây?
Int16 thực sự là một đoạn ngắn. Vì vậy, tôi nghĩ bạn có thể thay thế 'Int16 firstTest = Convert.ToInt16 (0);' với 'Int16 firstTest = 0s;' –