我们常常写这样的代码:
   if a is b then
   begin
      (a as b).caption:='asddfas';
   end;
 但是如若a 不是 b的子孙类或者不是b的对象,直接用a is b来判断,就会出错。如何避免这种错误呢?请解释一下。

解决方案 »

  1.   

    這樣才是安全的做法!>>但是如若a 不是 b的子孙类或者不是b的对象,直接用a is b来判断, 就会出
    不會啊  if (a is b) then
      

  2.   

    is as 是有区别的is 是否
    as 作为is 判断是否为继承的基类as 把它作为什么什么处理
      

  3.   

    >>但是如若a 不是 b的子孙类或者不是b的对象,直接用a is b来判断, 就会出错可以这样:If a.ClassName=b then
                b(a).caption:='asddfas';赫赫,我一直这样用.