|
1
6
是的,编译器必须允许它,除非它知道转换是不可能的。
如果你看
|
|
|
2
0
你确定这不是课文中的错误吗? 做 编辑:我找到了参考资料: http://msdn.microsoft.com/en-us/library/aa691291(v=VS.71).aspx 就是这样 引用转换,意味着不是隐式的! 所以“从任何类类型到任何接口类型T,只要S没有密封,只要S没有实现T”这句话是正确的,它不能是隐式转换,所以它必须是显式的(并且不能保证它会成功)。 |
|
|
3
0
说明书上说: 换句话说,这里列出的转换类型是那些显式转换,由于两种类型之间缺乏显式关系,编译器无法在编译时检查这种转换是否可行和有效。这种转换尝试将在程序执行期间解决,如果转换不可能,则可能导致异常。 运行时显式转换可能失败,但也可能成功的典型示例是从接口类型S到接口类型T的转换,其中S和T不相关。成功与否取决于底层对象是否同时实现这两个接口。
当然,@Henk Holterman,S2:S,T的例子也是一个很好的例子,在这个例子中,转换可以成功。 |
|
|
4
-1
似乎都是关于用户定义的转换。 如果S没有实现t,那么肯定不能将类S强制转换为接口t。 |