看别人的代码,有时想,他们如何知道把object类型进行转换成另一类型.查看MSDN的例子也不一定知道到底应该转换成哪种类型
如
IHTMLControlRange rang = (IHTMLControlRange)body.createControlRange();
查看createControlRange()的返回类型是object,查看MSDN
返回的是controlRange 的收集
但是上面的也不知为何就可以转换成IHTMLControlRange呢?
我想当然的转成IHTMLDDElement 不知行不行?
这个是不是只有设计者才知道的答案呢?后续者只需要使用就是了?谢谢!
如
IHTMLControlRange rang = (IHTMLControlRange)body.createControlRange();
查看createControlRange()的返回类型是object,查看MSDN
返回的是controlRange 的收集
但是上面的也不知为何就可以转换成IHTMLControlRange呢?
我想当然的转成IHTMLDDElement 不知行不行?
这个是不是只有设计者才知道的答案呢?后续者只需要使用就是了?谢谢!
//Student 是一个定义的类
object o = new object();
Student stu = (Student)o; //error: System.InvalidCastException 不能转换
如果是:
object o = new Student();
Student stu = (Student)o; //ok
LZ你定义一个变量自然是为了以后使用,所以如果你想知道要把Object转成什么样,就要看是要在什么地方使用这个变量,使用的地方的那个变量是什么类型的,就把object转换成什么类型
按这么方式转换提示不能强制,所以并不是object就是包络万象.它只能在原型产生的object下才能转换成其它派生的类型.
当我想具体了解某个对象有哪些属性、事件、方法可用时,C#只告诉我它是个object,而不告诉我是什么样的Object==> 结果,等于什么也没告诉我! 这一点与Delphi相比差远了。