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()); } }
随机推荐
- NSEnumerator
NSEnumerator 基本理解 NSEnumerator是一个抽象类,它没有用来创建实例的公共接口.而NSArray,NSDictionary,NSSet可以通过相关方法返回一个实例 可以使用它的 ...
- 代码校验工具 SublimeLinter 的安装与使用
SublimeLinter 是 Sublime 的插件,它的作用是检查代码语法是否有错误,并提示.习惯了 IDE 下写代码的人一定需要一款在 Sublime 上类似的语法检查工具.下面我们开始. 安装 ...
- 你连Bug都抓不住,还谈什么参与感?
林子大了什么鸟都有,APP市场也是这样.举个例子,有段时期图片社交井喷式发展,各类图片社交APP一时充斥着市场.各种或重视图片加工或主打社交元素的APP“来得快去得快”.“你方唱罢我登场”,这些短命A ...
- Outlook 2013 在邮件里面点击超链接时弹出“组织策略阻止我们为您完成此操作”
现象描叙: 在Outlook在邮件里面点击超链接时,打不开超链接页面,弹出如下提示: 这个是因为之前安装了其它浏览器(例如,我安装了360的浏览器),并且设置为了默认浏览器,后来卸载了该浏览器 ...
- LightSpeed 之Sql和存储过程的使用
虽然使用LightSpeed提供的Query就可以解决绝大部分问题,但如果业务逻辑过于复杂,有时候还是需要执行SQL语句或者存储过程 用SQL的方式就是使用FindBySql. FindBySql的参 ...
- 【整理贴】DBA-常用到的动态视图分析语句
测试应用环境:SQL2008 R2.SQL2012.SQL2014 --语句1:获取前20逻辑读取次数或逻辑写入次数或CPU 时间 SELECT TOP 20 SUBSTRING(qt.TEXT, ( ...
- PL/SQL之--流程控制语句
一.简介 像编程语言一样,oracle PL/SQL也有自己的流程控制语句.通过流程控制语句,我们可以在PL/SQL中实现一下比较复杂的业务逻辑操作.而无需到程序中去控制,在一定程度上提高了效率,这也 ...
- java控制台输入
一.java控制台输入 java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的 ...
- 在VMware Workstation11虚拟机上安装黑苹果
图文详解如何在VMware Workstation11虚拟机上安装黑苹果Mac OS X 10.10系统-网络教程与技术 -亦是美网络 http://www.yishimei.cn/network/5 ...
- [转]Android输出Log到文件
前言:开发中遇到mx4这款机型Eclipse联调不上,logcat看不了,需要输出生成文件查看调试信息.网上搜了下,功能很完善了.startService和过滤输出信息需要自己添加设置,另外注意添加权 ...