面向对象——is和as运算符、泛型集合 List<T>
二:is和as运算符:
(1) is运算符
is 运算符用于检查对象是否与给定类型兼容。如果兼容返回true,否则返回false;
一般用于查看某个类是否实现了某个接口,或者是不是某个类的子类;
例如,要检查变量是否与object类型兼容: 注意:“兼容”表示对象是该类型,或者派生于该类型。
object o = new object(); if (o is Label)
{
Label lb = (Label)o; Response.Write("类型转换成功");
}
else
{
Response.Write("类型转换失败");
}
int和从object继承而来的其他C#数据类型一样,表达式i is object将得到true,并显示信息。
(2) as运算符
as 运算符用于在兼容的引用类型之间执行转换。类似于强制转换操作,但是如果无法执行转换,as不会引发异常,而是返回null
object o = new object(); Label lb = o as Label; if (lb == null)
{
Response.Write("类型转换失败");
}
else
{
Response.Write("类型转换成功");
}
对比is和as操作符转换的两种方式,is需要做两次对象的类型检查,而as需要做一次对象类型检查,再加一次null的检查,而null检查开销比对象类型检查少。相对as的方法效率高些。
二:泛型集合 List<T>
泛型的好处:
综合了集合与数组的优点,
固定数据类型,不限制长度的一种集合
面向对象——is和as运算符、泛型集合 List<T>的更多相关文章
- 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合
1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写,子类重写父类的方法 ...
- 面向对象--类库、委托、is和as运算符、泛型集合
类库: 其实就是一堆类文件,只是看不到这些类的源代码,保密性好. 优点:保密性好 缺点:如果这个方法不好用,使用者无法自己去更改它. 给的大多是dll文件.使用方法:引用右键,添加引用,浏览,选择到相 ...
- C#—类库、委托、is和as运算符、泛型集合
类库 类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口.抽象类和具体类.类库可以解决一系列常见编程任务(包括诸如字符串管理.数据收集.数据库连接以及文件访问 ...
- 类库、委托、is as运算符、泛型集合
类库: 说白了,就是让别人调用你写的方法,并且不让别人看到你是怎么实现的. 如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目. 1.C#源代码 ...
- 多态、类库、委托、is和as运算符、泛型集合
多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了v ...
- 类库,委托,is和as运算符,泛型集合
类库:其实就是一堆类文件,只不过用户看不到这些类的源代码,保密性好. 优点:保密性好缺点:如果这个方法不好用,使用者无法自己去更改它. 类文件是.cs 类库是.dll 新建项目为类库,在debu ...
- 多态,虚拟方法,重写,接口,类库,委托,is,as运算符,泛型集合,万能变量
多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual重写 override父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了vir ...
- 使用泛型集合取代datatable作为返回值实现面向对象
开会的时候,师父说.我们在机房重构时,尽量不要用datatable作为返回值.改用泛型集合的方式,这样能够实现真正的面向对象. 通过查资料和同学交流,把这个问题给攻克了. 对于泛型集合.我也有了一些认 ...
- C#面向对象14 List泛型集合/装箱和拆箱/字典集合(Dictionary)
1.List泛型集合 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...
随机推荐
- 【Bootstrap】4.企业网站(待续)
上一章有队个人站点站点进行一些优化.本章,轮到我们充实这个作品站点了,补充一些项目,从而展示我们的能力.话句话说,我们要构建一个相对复杂的企业网站主页. 下面有几个成功企业的网站: □ Zappos ...
- The quieter you become,The more you are able to hear.
- AES加密解密
AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES).AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准. 根据使用的密码长度,AES最常见的有3种密钥方案,用以适应 ...
- art.dialog.art 中,将子页面窗口中的值传递给父框架中
artDialog.open.origin.document.getElementById('父元素ID').value=document.getElementById('子页面元素ID').valu ...
- sql 如果关联表 没有值 设置 默认值
SELECT *FROM ( SELECT t.task_name, t.status AS task_status, coalesce( r.task_ref_id, 999 ) AS task_ ...
- msbuild ConfuserEx.Build 加密
https://www.nuget.org/packages/ConfuserEx.Build/ <?xml version="1.0" encoding="utf ...
- Java Maps的9个常见问题
一般来说,Map是一种由键值对组成的数据结构,其中键(key)在Map中是不能重复的: 本篇文章总结了9个最常见的问题(关于Java Map及其实现类): 出于简单考虑,在代码例子中我将不使用泛型,因 ...
- Entity Framework在Asp.net MVC中的实现One Context Per Request(附源码)
上篇中"Entity Framework中的Identity map和Unit of Work模式", 由于EF中的Identity map和Unit of Work模式,EF体现 ...
- Fourth glance in Go
在Go里面的结构体和方法是很有意思的内容.它即和OO有点像,但又不完全一样.为什么这么说呢?当你把结构体映射为OO里面的类的时候,你给结构体添加方法,你就会发现其实方法与结构体并没有严格意义上的关系. ...
- .NET框架设计(常被忽视的框架设计技巧)
阅读目录: 1.开篇介绍 2.元数据缓存池模式(在运行时构造元数据缓存池) 2.1.元数据设计模式(抽象出对数据的描述数据) 2.2.借助Dynamic来改变IOC.AOP动态绑定的问题 2.3.元数 ...