C#中的is、as及转换
转换
1.任何类型都可以转换为其基类类型,用隐式转换完成;
2.任何类型转换为其派生类型时,必须进行显示转换。采用
(类型名)对象名
完成;
3.基本类型可以使用Convert类实现类型转换;
4.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
在系统中:
- 使用GetType可以取得任何对象的精确类型;
- 值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);
C# 的is和as
is
is 关键字用于检查对象是否与给定类型兼容。注意了,这里的
is并不是“是”的意思,而是“兼容”。
也就是说,如果被检查对象能够强制转换成给定类型并不发生异常,那么表示它们类型兼容。
is 检查规则:1.检查对象类型的兼容性,并返回结果true(false);2.不会抛出异常;3.如果对象为null,返回false;
示例:
object o = "string";
if (o is string) //执行第一次类型兼容性检查
{ string s = (string)o; //执行第二次类型兼容性检查,并转换Console.WriteLine("success!"); }
else
{ Console.WriteLine("转换失败!");
}
注意:is运算符只考虑引用转换、装箱转换和 拆箱转换。不考虑其他转换,如用户定义的转换。
特别注意:虽然int和long、double是类型兼容的,但是使用is运算符的结果却是false,那是因为is运算符只考虑引用转换、装箱转换和拆箱转换。
在is运算符的左侧不允许使用匿名方法。
as 转换
as 转换规则
1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;作为对比,如果类型不兼容,则强制转换会抛出异常。
2.不会抛出异常;
C#中的is、as及转换相关推荐
- c 将图片存入到mysql数据库中_如何将图片转换存入到数据库中,并从数据库中取出转换成图片...
有时候我们想把图片存入到数据库中,尽管这不是一种明智的选择,但有时候还是不得以会用到,下面说说将图片转换成byte[]数组存入到数据库中去,并从数据库中取出来转换成图像显示出来. 首先,我们要把图片存 ...
- GIS中的坐标系定义与转换
GIS中的坐标系定义与转换 青岛海洋地质研究所 戴勤奋 2002-3-27 14:22:47 ----------------------------------------------------- ...
- nsdata是java什么类型_Swift中基本数据类型与NSData转换
Swift中基本数据类型与NSData转换 最近由于程序的需要,要与JAVA的服务端进行Socket的交互,那么这就牵涉到了数据的交互.Socket的数据交互一般都是直接采用二进制Bytes的方式来传 ...
- python中list与array互相转换
python中list与array互相转换 author@jason_ql http://blog.csdn.net/lql0716 u = array([[1,2],[3,4]]) m = u.t ...
- C++中的四类强制转换?
C++中的四类强制转换? 例: class ClassA { public: virtual ~ ClassA() { } virtual void FunctionA() ...
- .NET中的中文简繁体转换
.NET中的中文简繁体转换 http://www.cnblogs.com/shinewaycn/archive/2005/07/04/186251.aspx 导入名字空间Microsoft.Visua ...
- GIS中的坐标系定义与转换【转】
1. 椭球体.基准面及地图投影 GIS中的坐标系定义是GIS系统的 基础,正确定义GIS系统的坐标系非常重要.GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对 ...
- 7.Java中变量的隐式转换以及强类型转换
1.变量的相加,(变量的数据类型一致),直接运算即可! 结论: Java中变量的 隐式转换(数据类型的默认类型提升) byte,short,char- ...
- vue中将md转成html,Vue/Vue中Html和Markdown互相转换/README.md · 倚栏听风/LearningNotes - Gitee.com...
# Vue中Html和Markdown互相转换 ## 前言 最近想实现的一个功能,就是将系统中的博客进行导出成Markdown格式,后面经过了调研发现有两种方法能够满足需求,一个是Java后台中将HT ...
- ArcGIS中的坐标系定义与转换 (转载)
原文:ArcGIS中的坐标系定义与转换 (转载) 1.基准面概念: GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐 ...
最新文章
- 2014年度辛星解读css第四节
- c++线程数量的限制
- 纽约大学计算机和信息科学专业排名,纽约大学计算机科学与信息系统世界排名2018年最新排名第33(QS世界排名)...
- 关于8位AD_DA转换芯片的采样率问题
- 今天网站都变成灰色了,这其中是怎么实现的?
- ue4插件导入导出_Blender到UE4的无缝衔接
- 机器学习笔记(十二)——马尔科夫模型
- OpenStack 集群部署工具:ProStack
- 微信支付之异步通知签名错误
- javaeye改名之后
- 烽火超微信息科技 服务器,智算升级 烽火超微发布新一代V6服务器
- 使鼠标保持按住状态_让电脑也能听、会写、还会说!小米小爱鼠标抢先体验
- 四道Java基础题 你能对几道?
- Salesforce: 关于Apexpages.Message类
- 微型计算机48MHz辐射超,EMI辐射测试超标 求高手指点
- Node开发实践总结-定时脚本的设计与实现
- linux如何配浏览器证书,部署国密SSL证书,如何兼容国际主流浏览器?
- 互联网的女性主义特征
- python首页展示业务逻辑_01-商品查询业务逻辑的实现
- LTE中语音业务时怎样实现?
热门文章
- Intel大坑之中的一个:丢失的SSE2 128bit/64bit 位移指令,马航MH370??
- 公司项目拓扑的演变过程
- 嵌入式Linux系统运行流程图
- 浅谈:ArrayList,ListT,ListObject
- Tomcat 总体结构
- Oracle10g/11g数据库性能的诊断和监控方法论
- python asyncio理解_深入理解asyncio(二)
- W ndows95安装,Windows 95的安装
- mysql登录错误1045修改工具_mysql登录1045错误时 修改登录密码
- C语言1的阶级加3的阶级,第六天学C语音(一点分支与循环+n的阶层的练习)