c#中is关键字与as关键字的区别与使用

转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688

is关键字是判断类型,用于检查对象是否与给定类型兼容,不成功则不会抛出异常,如果兼容则返回true如果不兼容则返回false。在进行类型转换之前用

               if (P_obj is System.String)
                {
                    string objStr = (string)P_obj;
                    MessageBox.Show("与类型兼容", "提示!");
                }
                else
                    MessageBox.Show("与类型不兼容", "提示!");

在上面的例子中进行两次兼容性检查,一在判断时P_obj is System.String,另一次在转换(string)P_obj时。用as只需要 一次。

as关键字是转换,可以将对象转换为指定类型,与is不同,转换成功将会返回转换后的对象,不成功则不会抛出异常而是返回null 。

                string objStr = P_obj as string;
                if (objStr != null)
                    MessageBox.Show("与类型兼容", "提示!");

                else
                    MessageBox.Show("与类型不兼容", "提示!");

转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688

时间: 2024-11-03 18:41:21

c#中is关键字与as关键字的区别与使用的相关文章

C++中的4个类型转换关键字

转载:http://poplars.blog.163.com/blog/static/1394221742013021111210567/ n多书里面推荐要养成使用转型关键字的习惯,几年过去了,感觉还是不习惯,C风格的转型操作实在太强大太方便了. 1.const_cast 号称唯一具有常量性移除的转型操作符,这个说法实在很废话,不解释.平时几乎没有用过,遇到需要这个关键字的时候,都是直接修改了接口的类型,也不会去用这个关键字,一般来说老接口设计有问题啊.明明是const的,非得转成non-con

Java中创建对象的5种方式 &&new关键字和newInstance()方法的区别

转载:http://www.kuqin.com/shuoit/20160719/352659.html 用最简单的描述来区分new关键字和newInstance()方法的区别:newInstance: 弱类型.低效率.只能调用无参构造.new: 强类型.相对高效.能调用任何public构造. newInstance( )是一个方法,而new是一个关键字,其次,Class下的newInstance()的使用有局限,因为它生成对象只能调用无参的构造函数,而使用new关键字生成对象没有这个限制.Cla

C#中的override和new关键字

问题1: 虚方法 首先,看下面的代码. namespace CSharpTest { class A { public void fun() { Console.WriteLine("这是父类方法"); } } class B : A { public void fun() { Console.WriteLine("这是子类方法"); } } class Test { public static void Main() { A a = new A(); a.fun(

Objective-C中的instancetype和id关键字(转)

转自:Objective-C中的instancetype和id关键字 一.什么是instancetype 同id一样,都是表示未知类型的的对象. 二.关联返回类型(related result types) 根据Cocoa的命名规则,满足下述规则的方法: 1.类方法中,以alloc或new开头 2.实例方法中,以autorelease,init,retain或self开头 会返回一个方法所在类类型的对象,这些方法就被称为是关联返回类型的方法.换句话说,这些方法的返回结果以方法所在的类为类型,说的

SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数

原文:SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 1 USE [tempdb] 2 GO 3 4 CREATE TABLE #temptb(id INT ,NAME VARCHAR(200)) 5 GO 6 7 INSERT INTO [#temptb] ( [id], [NAME] ) 8 SELECT 1,'中

转:C#中Monitor对象与Lock关键字的区别分析

Monitor对象1.Monitor.Enter(object)方法是获取 锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁 无法释放,所以需要在try{} catch(){}之后的finally{}结构体中释放锁(Monitor.Exit()).2.Monitor的常用属性和方法: Enter(Object) 在指定对象上获取排他锁. Exit(Object) 释放指定对象上的排他锁. IsEnte

java中稍微有些陌生的关键字

1. instance of java中,instance of 用来指出某个对象是否为某个特定类的实例,如果是返回一个bool类型,来指出该对象是否为某个特定类或其子类的一个实例 resutl = object instance of class interface A{} class B implements A { } class C extends B { } public class InstanceOfTest { public static void main(String[] a

C#中关键字ref与out的区别(转)

在C#中,ref与out是很特殊的两个关键字.使用它们,可以使参数按照引用来传递. 总的来说,通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不将受到影响.此外我们还有其他向方法传递参数的形式,引用(ref)和输出(out). 有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值.引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值.变量的值存储在内存中,可以创建一个引用,他指

转载 浅谈C/C++中的static和extern关键字

浅谈C/C++中的static和extern关键字 2011-04-21 16:57 海子 博客园 字号:T | T static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性.extern "C"是使C++能够调用C写作的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话,那么就要使用extern "C"来说明.本文主要介绍C/C++中的static和extern关键字. AD: static是C++中常用的修饰符,它被用来控制变量的存贮方

简述C#中关键字var和dynamic的区别

C#中关键字var和dynamic的区别如下: 1.var申明的变量必须初始化,dynamic申明的变量无需初始化. 2.var关键字只能在方法内部申明局部变量,dynamic关键字可用于局部变量,字段,参数. 3.表达式不能转型为var,但可以转型为dynamic. 4.用var关键字声明变量时,编译时会根据初始化值来推断该变量的类型,用dynamic关键字声明变量时,编译的时候不执行类型检查,仅在运行时识别对象的类型. 注:参考<CLR via C# 4>