if(obj is ClassA) //遍历类层次,看OBJ是不是ClassA类型
{
    ClassA a=(ClassA) obj; //遍历类层次,看obj能否转换为ClassA,不成功则抛出异常
   ...
 }
//作了两次类层次遍历

ClassA a = obj as ClassA //不成功返回null,不会抛出异常
If(a)
{

}
//仅作了 一次类层次遍历

using System.Runtime.InteropServices;
using System;
delegate string DTE(int x, string s); class MYTestX
{
class CO
{ }
class CTEST : CO
{ }
class CDT : CO
{ }
static void Main(string[] args)
{ CTEST ot = new CTEST();
CO odt = new CDT();
ot = (CTEST)odt; //抛出异常
ot = odt as CTEST;//不会抛出异常,ot = null CTEST ot1 = new CTEST();
CDT odt1 = new CDT();
ot1 = odt1; //编译错误,不能执行类型转换 Console.WriteLine( ot == null ? "null" : ot.ToString()); } }

      

    

  

  

  

  

  

  

  

  

  

  

  

随机推荐

  1. SqlSever大数据分页

    在sql sever中大数据的分页一直是难以处理的一块,利用id自增列分页也存在不足之处.从一个相对全面的分页看,sql sever2005中新增的row_number()函数解决了这个问题.还是从一 ...

  2. iOS label根据显示内容自适应大小

    - (void)setupLabel { //准备工作 UILabel *textLabel = [[UILabel alloc] init]; textLabel.font = [UIFont sy ...

  3. IOS之KVC和KVO(未完待续)

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  4. 强制IE使用最高版本引擎渲染页面,避免默认使用IE7引擎导致的页面布局混乱及其它问题

    背景 基于Asp.net MVC的一个Intranet web application, 现象 Application发布到服务器端后,在客户端IE访问页面布局混乱,并有javascript报错 原因 ...

  5. 换新 iPhone 前要做的 9 件事

    iPhone 6 以及 iPhone 6 Plus 终于在众人的期盼下发布了,是不是很多朋友都跃跃欲试,想入手新的 iPhone 呢?若你手中持有旧款 iPhone 的话,其实更换成新机后,还有不少事 ...

  6. SQL 相关

    SET STATISTICS TIME ON 记录查询的相关数据 生成随机Guid SELECT NewID() 按照某一列排序并生成序号 select Row_Number() OVER (ORDE ...

  7. python数据结构-列表-基本操作

  8. ArcGis 10+Oracle发布WFS-T服务,无法更新Feature的解决方法

    现象: 前端采用Openlayers,更新Feature时服务器端返回的XML提示更新错误 原因: 参考:http://support.esri.com/en/knowledgebase/techar ...

  9. DimDate populate data

    日期维度 任何一个数据仓库都应该有一个日期维度. 因为很少有不需要通过日期维度看数据的情况存在. 日期维度的好处是,你可以通过他连接各个事实表,然后在报表端传送报表参数的时候, 直接自动过滤日期维度的 ...

  10. 《互联网+:从IT到DT》:阿里公关稿,数据与案例不够全面客观,电商部分有一些生动的例子,三星

    本书是阿里研究院的集体创作,当然要从阿里的视角写,因此其他的互联网巨头的信息很少涉及,对阿里不利的案例很少涉及. 关于“互联网+”,关于“互联网+”跟互联网的区别,书的开头有一点介绍.我感觉总体来说直 ...