c# 类型转换_C#教程

CLR允许将一个对象转换为它的实际类型,或者它的基类型。
在C#中,可将一个对象隐式转换为它的基类型,将对象转换成派生类型需要显示转换。例:
object o = new Emplee();
Emplee e = (Emplee)o;

但是如果将一个对象转换成自己的派生类型是,会运行时报错:
object o = new object();
Emplee e = (Emplee)o;

所以CLR是类型安全的。

c#中is as的操作符用法
在c#语言中,进行类型转换的另一个方式是使用is as操作符。
is:检查对象是否兼容指定对象,返回bool类型。
例:

object o = new object();
bool b1 = (o is object);//true
bool b2 = (o is Emplee);//false

is一般的用法:
if(o is Emplee)
{
Emplee e = (Emplee)o;
}
as:目的是简化is的代码写法,同时提升性能,用法:
Emplee e = o as Emplee;
if(e != null)
{ }
这段代码中,CLR核实o是否兼容于 Emplee类型,如果兼容就转Emplee类型,如果不兼容就返回null。

时间: 2024-08-04 03:47:05

c# 类型转换_C#教程的相关文章

C#难点逐个击破(9):类型转换_C#教程

显式转换与隐式转换 类型之间的转换可以分为隐式转换与显式转换,如int类型可直接转换为long类型. 复制代码 代码如下: /*隐式转换*/ int intNum = 23; long longNum1 = intNum; 也可进行显式转换: 复制代码 代码如下: /*显式转换*/ int intNum = 23; long longNum2 = (long)intNum; Parse 每个值类型都包含Parse()依法,它将字符串转换成对应的数值类型] 复制代码 代码如下: /*Parse转换

使用VS2010 C#开发ActiveX控件(下),完整代码打包下载_C#教程

其实如果我们不进行设置,只是修改了代码,运行程序以后,其出错界面如下图1所示: 开发ActiveX控件(下),完整代码打包下载_C#教程-vs2010使用教程 c"> 图1 抛出异常如下: ************** Exception Text ************** System.MethodAccessException: Attempt by security transparent method 'Rare.Card.Libary.Controls. ReadCardCo

.Net WInform开发笔记(三)谈谈自制控件(自定义控件)_C#教程

末日这天写篇博客吧,既然没来,那就纪念一下. 这次谈谈自制控件,也就是自定义控件,先上图,再说 1.扩展OpenFileDialog,在OpenFileDialog中添加各种文件(.txt,.jpg,.excel等等)的预览功能 开发笔记(三)谈谈自制控件(自定义控件)_C#教程-winform自定义控件"> 2.重写ListBox,增加折叠.鼠标背影.分类等功能 -----------------------------分割线-------------------------------

.Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用_C#教程

中午没事,把去年刚毕业那会画的几张图翻出来了,大概介绍Winform应用程序运行的过程,以及TCP协议在Winform中的应用.如果有Windows消息机制等基础,很好理解这两张图. (1)Winform应用程序运行结构图 开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用_C#教程-tcp ip协议 层结构图"> (2)TCP通讯协议在Winform程序中的应用示意图 熟悉整个程序的来龙去脉,编程的时候就会很轻松,不会云里雾里. 另附公司招聘面试题一份,用了几

C# DataTable中Compute方法用法集锦(数值/字符串/运算符/表等操作)_C#教程

本文实例讲述了C# DataTable中Compute方法用法.分享给大家供大家参考,具体如下: Compute函数的参数就两个:Expression,和Filter. Expresstion是计算表达式,关于Expression的详细内容请看这里: http://msdn2.microsoft.com/zh-cn/library/system.data.datacolumn.expression(VS.80).aspx 而Filter则是条件过滤器,类似sql的Where条件. DataTab

C#使用Object类实现栈的方法详解_C#教程

本文实例讲述了C#使用Object类实现栈的方法.分享给大家供大家参考,具体如下: Stack类的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 使用Object类实现后进先出队列 { class Stack { private Object[] _items; public Object[] Items { get { return this.

C#设置软件开机自动运行的方法(修改注册表)_C#教程

本文实例讲述了C#设置软件开机自动运行的方法.分享给大家供大家参考,具体如下: #region /// <summary> /// 开机启动项 /// </summary> /// <param name="Started">是否启动</param> /// <param name="name">启动值的名称</param> /// <param name="path"

C#利用原图和水印图的重叠简单实现水印的方法_C#教程

本文实例讲述了C#利用原图和水印图的重叠简单实现水印的方法.分享给大家供大家参考,具体如下: 图片操作类 /// <summary> /// 获取一个图片按等比例缩小后的大小. /// </summary> /// <param name="maxWidth">需要缩小到的宽度</param> /// <param name="maxHeight">需要缩小到的高度</param> /// &l

mvc C# JavaScript LigerUI oracle实现用户的注册、登陆验证、登陆_C#教程

一.登录数据库,在数据库中创建表User00,并且插入数据. 表的字段分别为: Id(编号).Name(姓名).Grid(级别).Score(积分).Password(密码).Age(年龄).Code(邀请码).(其中编号是自动编号) 部分命令如下: select * from User00; /*查询User00*/ insert into User00 values('one','优',10000,'123',24); /*插入一行数据*/ update User00 set Grid='优