C#is运算符的作用
is运算符的含义:检查对象是不是给定类型,或者是否可以转换为给定类型,如果是,这个运算符就返回True.
is运算符的语法:<operand> is <type>
这个表达式的结果如下:如果<type>是一个类类型,而<operand>也是该类型,或者它继承了该类型,或者它可以封箱到该类型中,则结果返回True.
如果<type>是一个接口类型,而<operand>也是该类型,或者它是实现该接口的类型,则结果返回True.
如果<type>是一个值类型,而<operand>也是该类型,或者它可以拆箱到该类型中,则返回True.
is实例:
namespace Chapter11
{
class Checker
{
public void Check(object param1)
{
if (param1 is ClassA)
Console.WriteLine("Variable can be converted to ClassA");
else
Console.WriteLine("Variable can't be converted to ClassA."); if (param1 is IMyInterface)
Console.WriteLine("Variable can be converted to IMyInterface.");
else
Console.WriteLine("Variable can't converted to IMyInterface."); if (param1 is MyStruct)
Console.WriteLine("Variable can be converted to MyStruct.");
else
Console.WriteLine("Variable can't be converted to MyStruct.");
}
}
interface IMyInterface
{ }
class ClassA : IMyInterface
{ }
class ClassB :IMyInterface
{ } class ClassC
{ } class classD : ClassA
{ } struct MyStruct : IMyInterface
{ }
class Program
{
static void Main(string[] args)
{
Checker check = new Checker();
ClassA try1 = new ClassA();
ClassB try2 = new ClassB();
ClassC try3 = new ClassC();
classD try4 = new classD();
MyStruct try5 = new MyStruct();
object try6 = try5;
Console.WriteLine("Analyzing ClassA type variable:");
check.Check(try1);
Console.WriteLine("Analyzing ClassB type variable:");
check.Check(try2);
Console.WriteLine("Analyzing ClassC type variable:");
check.Check(try3);
Console.WriteLine("Analyzing ClassD type variable:");
check.Check(try4);
Console.WriteLine("Analyzing MyStruct type variable:");
check.Check(try5);
Console.WriteLine("Analyzing boxed MyStruct type variable:");
check.Check(try6);
Console.ReadKey();
}
}
}
C#is运算符的作用的更多相关文章
- 大一C语言学习笔记(7)---指针篇--什么是指针?什么是指针变量?取地址符“&”的作用是什么?地址运算符“*”的作用是什么,怎么理解两者?
"指针是C语言的灵魂"这句话一开始我没怎么明白,现在接触了指针,终于知道为什么这么说了,因为....难,真难:下面说一下我对这句话的见解: C语言拥有着其他语言所没有的特性---直 ...
- C#------?和??运算符的作用
转载: http://www.cnblogs.com/zfanlong1314/archive/2012/02/26/2390456.html 1.?的作用 在处理数据库和其他包含不可赋值的元素的数据 ...
- C语言位运算符及作用:与、或、异或、取反、左移和右移
一.& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0应用:(1)清零 若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合一下条件:原来的数 ...
- SQL Server-聚焦APPLY运算符(二十七)
前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始 ...
- 关于java中自增,自减,和拓展运算符的小讨论
java中运算符很多,但是能深入讨论的不算太多.这里我仅仅以++,*=为例做讨论. 例:++ i=0; i=i++ + ++i;//i=1 i=++i+i++;//i=2 i=i++ -++i;//i ...
- JavaScript面试时候的坑洼沟洄——表达式与运算符
上篇博客JavaScript面试时候的坑洼沟洄--数据类型总结了一下JavaScript数据类型几转换的相关知识,很多朋友可能和我一样,买了书后对数据类型啊.运算符啊.语句啊都是扫两眼或直接略过的,自 ...
- javascript运算符语法概述
× 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...
- javascript运算符与表达式
表达式 表达式是关键字.运算符.变量以及文字的组合,用来生成字符串.数字或对象.一个表达式可以完成计算.处理字符.调用函数.或者验证数据等操作. 表达式的值是表达式运算的结果,常量表达式的值就是常量本 ...
- Sql Server中不常用的表运算符之UNPIVOT
在Sql Server中不常用的表运算符之PIVOT中,介绍了PIVOT表运算符,现在来说说与之相对应的另一个表运算符UNPIVOT. 从名字可以看出,这个运算符的作用与PIVOT刚好相反,是将一行的 ...
随机推荐
- ROC曲线、AUC、Precision、Recall、F-measure理解及Python实现
本文首先从整体上介绍ROC曲线.AUC.Precision.Recall以及F-measure,然后介绍上述这些评价指标的有趣特性,最后给出ROC曲线的一个Python实现示例. 一.ROC曲线.AU ...
- linux配置java环境变量(详细)
linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...
- 第13章 .NET应用程序配置
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...
- ArcMap 操作笔记
1.SQL查询(in) select * from table where PointID in ('1','2')
- 解决UBUNTU update KEY错误的问题
114down voteaccepted Run the following in your terminal, sudo apt-key adv --keyserver keyserver.ubun ...
- APP如何实现推送功能
一.推送功能的集成 (1)在Umeng开发者中心,申请新应用,开通推送功能.此时需要上传开发推送证书和生产推送证书的p12文件. 申请证书的流程如下: >>1 创建开发推送证书 >& ...
- .net学习笔记--使用抽象方法实现多态
在使用抽象方法实现多态之前,我们必须知道一些知识点: 1.抽象类不能被实例化: 2.抽象类可以包含非抽象成员,它们可以由其子类继承调用. 我们可以先创建一个Person的抽象类,代码如下: abstr ...
- 在ubuntu16编译安装nginx-1.10.2(full)完全自带组件
第一步:先安装全部用到的包 apt install gcc libpcre++-dev libssl-dev make \ libxml2-dev libxslt-dev libgd-dev libg ...
- VS2016 发布项目提示 CS0006 C# Metadata file 'xxxxxxx.dll' could not be found
生成的时候没有问题,发布项目的时候提示 CS0006 C# Metadata file 'xxxxxxx.dll' could not be found 解决方案,找到 xxxxxxx.dll 这个项 ...
- Servlet目录
Servlet目录 课时1 Servlet概述12:30 课时2 servlet的第一个例子31:08 课时3 servlet的生命周期18:18 课时4 HttpServlet详细讲解31:43 ...