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()); } }
随机推荐
- Android studio打包APK混淆配置
要在打包APK时加入混淆需要在Module中的buid.gradle中加入如下信息 buildTypes { release { minifyEnabled true shrinkResources ...
- IOS SDWebImage实现原理详解
在之前我写过SDWebImage的使用方法,主要是用与获取网络图片,没有看过的朋友可以看看. 这篇文章将主要介绍SDWebImage的实现原理,主要针对于获取网络图片的原理,如果没有第三方我们该怎么去 ...
- json深度详解及org.json库
了解json (Javascript Object Notation) 网站:http://json.org/ english JSON (JavaScript Object Notation) i ...
- Navicat 连接 Oracle数据库 提示 cannot load OCI DLL 的解决
一.32位系统下 cannot load OCI DLL,126 解决方法:工具->选项->OCI 选择oracle安装目录下bin里面的oci.dll 二 .在64位系统下安装了Orac ...
- 记录ubuntu下的svn一些操作
1.install svn serversudo apt-get install subversion 2.make repositorysudo mkdir /home/.svnsudo mkdie ...
- Python开发之【简单计算器】
开发一个简单的python计算器 1.实现加减乘除及括号优先级解析 2.用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * ...
- Linux nmap
一.简介 Nmap(Network Mapper)是一款开放源代码的网络探测和安全审核工具.它用于快速扫描一个网络和一台主机开放的端口,还能使用TCP/IP协议栈特征探测远程主机的操作系统类型.nma ...
- openstack排错
一.排错方法: 1.查看日志路径为/var/log,具体哪个组件出了问题进入其目录查看. 2.debug root@sc-ctrl01:~# keystone --debug user-list ro ...
- testng环境设置
1.在eclipse中安装testng插件,地址:http://beust.com/eclipse 2.设置testng环境变量 testng_home D:\Program Files\eclips ...
- 两种动态加载JavaScript文件的方法
两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看 ...