C#is运算符的作用

is运算符的含义:检查对象是不是给定类型,或者是否可以转换为给定类型,如果是,这个运算符就返回True.

is运算符的语法:<operand> is <type>

这个表达式的结果如下:如果<type>是一个类类型,而<operand>也是该类型,或者它继承了该类型,或者它可以封箱到该类型中,则结果返回True.

如果<type>是一个接口类型,而<operand>也是该类型,或者它是实现该接口的类型,则结果返回True.

           如果<type>是一个值类型,而<operand>也是该类型,或者它可以拆箱到该类型中,则返回True.

is实例:

 1 namespace Chapter11
 2 {
 3     class Checker
 4     {
 5         public void Check(object param1)
 6         {
 7             if (param1 is ClassA)
 8                 Console.WriteLine("Variable can be converted to ClassA");
 9             else
10                 Console.WriteLine("Variable can‘t be converted to ClassA.");
11
12             if (param1 is IMyInterface)
13                 Console.WriteLine("Variable can be converted to IMyInterface.");
14             else
15                 Console.WriteLine("Variable can‘t converted to IMyInterface.");
16
17             if (param1 is MyStruct)
18                 Console.WriteLine("Variable can be converted to MyStruct.");
19             else
20                 Console.WriteLine("Variable can‘t be converted to MyStruct.");
21         }
22     }
23     interface IMyInterface
24     { }
25     class ClassA : IMyInterface
26     { }
27     class ClassB :IMyInterface
28     { }
29
30     class ClassC
31     { }
32
33     class classD : ClassA
34     { }
35
36     struct MyStruct : IMyInterface
37     { }
38     class Program
39     {
40         static void Main(string[] args)
41         {
42             Checker check = new Checker();
43             ClassA try1 = new ClassA();
44             ClassB try2 = new ClassB();
45             ClassC try3 = new ClassC();
46             classD try4 = new classD();
47             MyStruct try5 = new MyStruct();
48             object try6 = try5;
49             Console.WriteLine("Analyzing ClassA type variable:");
50             check.Check(try1);
51             Console.WriteLine("Analyzing ClassB type variable:");
52             check.Check(try2);
53             Console.WriteLine("Analyzing ClassC type variable:");
54             check.Check(try3);
55             Console.WriteLine("Analyzing ClassD type variable:");
56             check.Check(try4);
57             Console.WriteLine("Analyzing MyStruct type variable:");
58             check.Check(try5);
59             Console.WriteLine("Analyzing boxed MyStruct type variable:");
60             check.Check(try6);
61             Console.ReadKey();
62         }
63     }
64 }
时间: 2024-10-01 06:09:53

C#is运算符的作用的相关文章

C#------?和??运算符的作用

转载: http://www.cnblogs.com/zfanlong1314/archive/2012/02/26/2390456.html 1.?的作用 在处理数据库和其他包含不可赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型以及日期类型的功能特别有用.例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义. 2.??的作用 ?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值.如果此运算符的左操作数不为

Java运算符和作用

这里我先说一下运算符和操作数: 运算符是表示运算的符号,参与运算的数据称为操作数. 算数运算符 1.一元运算符只有一个操作数(+.-.++.--四种) 如:+x表示x取正数,++x或x++表示x加1 2.二元运算符有2个操作数(+.-.*./(除).%(求余)五种) 如:p1+p2表示两数相加 关系运算符 有两个操作,数关系运算符(>.<.>=.<=.==.!=)是布尔类型,表达式的结果为true或false 如:p1>p2(p1=1,p2=3)结果为false 布尔逻辑运算

算术运算符++和--的用法

1.运算符 概念:对常量和变量进行操作的符号.备注:(运算之后是有结果的) 分类: 算术运算符, 赋值运算符 比较(关系或条件)运算符, 逻辑运算符 位运算符 三目(元)运算符   2.++,--运算符的作用 ++:自加:对原有的数据进行+1 --:自减:对原有的数据进行-1 3.使用: 单独使用:放在操作数的前面和后面效果一样. 参与运算使用: 当++在变量后面(i++),会先将变量中的值取出做赋值操作,再自身+1 当++在变量前面(++i),会先自身+1,然后再将+1后的结果赋值 4.举例说

[c语言]运算符的优先级与结合性

c语言中运算符的优先级和结合性常常被人混淆一谈,本文目的在于简单谈谈两者的区别.本文举几个简单的例子说明,这些运算符也特别常用. 首先要明白的是:优先级决定表达式中各种不同的运算符起作用的优先次序:而结合性则在相邻的运算符的具有同等优先级时,决定表达式的结合方向. [赋值运算符“=”] 对于赋值运算符来说,常会用到的是连续赋值的表达式.比如“a=b=c”. 这里的变量b的两边都是赋值运算,优先级当然是相同的,那么应该怎么理解这个表达式呢?我们知道,赋值表达式具有“向右结合”的特性,这就表示这个表

字符串创建运算符#

#define show(name) showword(#name) void showword(const char *s) { printf("%s\n"); } int main() { show(ABC); return 0; } 结果:ABC 运算符的作用是将ABC变为了"ABC",并以此为参数传给showword函数,这个运算符只能在宏定义中使用

C语言笔记1--类型、运算符与表达式

 C语言笔记1--类型.运算符与表达式 总论: 变量和常量是程序处理的两种基本的数据对象.声明语句说明变量的名字和类型,也可以指定变量的初值.运算符指定将要进行的操作.表达式则把变量与常量组合起来生成新的值.对象的类型决定该对象可取值的集合以及可以对该对象执行的操作. 一.变量与常量的名字 1.名字是由字母.下划线和数字组成的序列,其第一个字符必须为字母:下划线"_"被看做是字母,但一般不要以下划线"_"开头. 2.名字区分字母大小写,变量名使用小写字母.符号常量

算术运算符与控制台输入

基本运算符:"+   -   *   /" "+"的作用: +在算术运算符中表示做加法运算 在字符串中,可以用来连接字符串,同时也可以和其他的数据类型的变量进行连接 关系运算符:">,<"  "==,!="  ">=,<=" 关系运算符的作用:用来做比较运算,比较结果是boolean类型 自增(自减)的运算符:++,-- 可以将当前的变量自我增加(减少)1的运算符 1:i++,后++

C之旅(一)运算符——优先级,结合性和求值顺序

本节主要讲基本运算符的优先级,结合性和求值顺序.先看一个表达式- (1 + 2) * 3 + (4 + 5 * (6 + 7 ))记住你对它的运算过程,看完下面的内容之后,也许你会用不同的方式来看待这个表达式. 基本运算符 = + - * / C中没有指数运算.运算符操作的是操作数,操作数就是放在运算符两侧的东西. (1) 赋值运算符 = year = 2016; 读作将值2016赋给year,而非year等于2016.=将2016赋给变量year,是从右到左的,即=具有右结合性.2016 =

Java 位运算符 深入理解

在Java中存在着这样一类操作符,是针对二进制进行操作的,它们分别是&.|.^.~.>>.<<.>>>几个位操作符,无论是初始值是按照何种进制,都会换算成二进制进行位 操作.接下来对这几种操作符进行一下简单的讲解. &: 作用是对运算符两侧以二进制表达的操作符按位分别进行'与'运算,而这一运算是以数中相同的位(bit)为单位的.操作的规则是:仅当两个操作数都为1时,输出结果才为1,否 则为0,示例如下: 12 的二进制为 1100 5   的二进制