C# is as
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()); } }
随机推荐
- nib文件的注册及加载
1,注册 [(UIView *)view registerNib:[UINib nibWithNibName:(NSString *)nibName bundle:(NSBundle *)bundle ...
- 【读书笔记】iOS-查看一个软件ipa包的内容
一,打开itunes----->我的iPhone应用程序. 二,右键点击app---->在Finder中显示---->出现下图所示界面. 三,将上图中的ipa包拷贝到桌面,如下图所示 ...
- 多线程之NSThread和NSObject
#pragma mark - NSThread实现多线程 /* // 获取当前线程 NSLog(@"currentThread = %@", [NSThread currentTh ...
- iOS应用程序开发之应用间的跳转(用着微信等第三方分享登陆)
简介 配置和实现 判断应用启动方式 一.简介 最实际项目开发中,我们难免会遇到需要从一个应用跳转到另一个应用的情况.比如微信分享,实际就是一种应用间的跳转.但是有时候我们需要实现自己的两个应用间的跳转 ...
- javascript之工厂方式定义对象
每一个函数对象都有一个length属性,表示该函数期望接收的参数个数. <html> <head> <script type="text/javascript& ...
- 局域网内搭建git
git简介:请大家参看git官网的介绍 http://git-scm.com/book/zh/v1 还有这位大神的git教程:http://www.liaoxuefeng.com/wiki/0013 ...
- 测试管理_下属谈话[持续更新ing]
作为测试部门的管理者,在工作绩效评定.工作安排.工作问题提出等时候,都需要与下属进行面对面谈话,怎么进行有效的谈话,这是一个值得思考和锻炼的问题. 谈话的内容: 谈近阶段工作的回顾 谈工作中的困难(是 ...
- MongoDB学习笔记——聚合操作之MapReduce
MapReduce MongoDB中的MapReduce相当于关系数据库中的group by.使用MapReduce要实现两个函数Map和Reduce函数.Map函数调用emit(key,value) ...
- 烂泥:SQL Server 2005数据库备份与恢复
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 服务器的迁移,因为业务使用的数据库是SQL Server 2005,所以就要首先对数据库进行备份. 备份可以分为手动备份和自动备份,我们先来介绍手动备份 ...
- javascript 内部对象(1)——Math 对象
Math是javascript中的内部对象之一,主要用于处理数学方面的任务,是一种静态对象.和其他动态对象如Date.String等不同的是它没有构造函数Math(),可以直接使用属性和方法. 例如使 ...