在 C# 中,示例 1 为何有效:
int myValue1 = 11;
double resultDirectlyFromInt = myValue1;
Run Code Online (Sandbox Code Playgroud)
但示例 2 没有:
int myValue2 = 22;
object myObject2 = myValue2;
double resultFromBoxedInt = (double)myObject2;
Run Code Online (Sandbox Code Playgroud)
示例 3 再次起作用:
double myValue3 = 33.3;
object myObject3 = myValue3;
double resultFromBoxedDouble = (double)myObject3;
Run Code Online (Sandbox Code Playgroud)
有人可以解释其背后的理由吗?因为对我来说,工作示例 1 和 3 看起来像是示例 2 应该有效的证明。