二: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>

命名空间:   System.Collections.Generic
 
    List<T>类是 ArrayList 类的泛型等效类。
    该类使用大小可 按需动态增加 的数组实现 IList<T> 泛型接口。
 
    Enumerable 枚举
    Collection 集合
 

泛型的好处:

综合了集合与数组的优点,
    固定数据类型,不限制长度的一种集合

    它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。
    不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,性能得到提高。
 
注意事项: 
    在决定使用IList<T> 还是使用ArrayList类(两者具有类似的功能)时,
    记住IList<T> 类在大多数情况下执行得更好并且是类型安全的。
 
    如果对IList<T> 类的类型 T 使用引用类型,则两个类的行为是完全相同的。
    但是,如果对类型 T 使用值类型,则需要考虑实现和装箱问题。
List的基础、常用方法
 
声明:
        List<T> NAME = new List<T>();
        List<T> NAME =new List<T> (IEnumerable<T> collection);         ----以一个集合作为参数创建List
 
添加元素:
        List. Add(T item);        ----添加一个元素
        List. AddRange(IEnumerable<T> collection);         ----添加一组元素
        Insert(int index, T item);            ----在index位置添加一个元素 
 

遍历List中元素:
         foreach (T element in mList);          ----T的类型与mList声明时一样
 
删除元素:
        List. Remove(T item);                ----删除一个值
        List. RemoveAt(int index);        ----删除下标为index的元素 
        List. RemoveRange(int index, int count);        ----从下标index开始,删除count个元素
 
     注:删除某元素后,其后面的元素下标自动跟进
 
判断某个元素是否在该List中: 
     List. Contains(T item);           ----返回true或false,很实用
 
List清空:
        List.Clear ();
 
获得List中元素数目: 
         List.Count ();         ----返回int值
 
var 万能变量

面向对象——is和as运算符、泛型集合 List<T>的更多相关文章

  1. 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合

    1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写,子类重写父类的方法 ...

  2. 面向对象--类库、委托、is和as运算符、泛型集合

    类库: 其实就是一堆类文件,只是看不到这些类的源代码,保密性好. 优点:保密性好 缺点:如果这个方法不好用,使用者无法自己去更改它. 给的大多是dll文件.使用方法:引用右键,添加引用,浏览,选择到相 ...

  3. C#—类库、委托、is和as运算符、泛型集合

    类库 类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口.抽象类和具体类.类库可以解决一系列常见编程任务(包括诸如字符串管理.数据收集.数据库连接以及文件访问 ...

  4. 类库、委托、is as运算符、泛型集合

    类库: 说白了,就是让别人调用你写的方法,并且不让别人看到你是怎么实现的. 如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目. 1.C#源代码 ...

  5. 多态、类库、委托、is和as运算符、泛型集合

    多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了v ...

  6. 类库,委托,is和as运算符,泛型集合

    类库:其实就是一堆类文件,只不过用户看不到这些类的源代码,保密性好. 优点:保密性好缺点:如果这个方法不好用,使用者无法自己去更改它. 类文件是.cs    类库是.dll 新建项目为类库,在debu ...

  7. 多态,虚拟方法,重写,接口,类库,委托,is,as运算符,泛型集合,万能变量

    多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual重写 override父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了vir ...

  8. 使用泛型集合取代datatable作为返回值实现面向对象

    开会的时候,师父说.我们在机房重构时,尽量不要用datatable作为返回值.改用泛型集合的方式,这样能够实现真正的面向对象. 通过查资料和同学交流,把这个问题给攻克了. 对于泛型集合.我也有了一些认 ...

  9. C#面向对象14 List泛型集合/装箱和拆箱/字典集合(Dictionary)

    1.List泛型集合 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

随机推荐

  1. 优秀的CSS框架---bootstrap

    Bootstrap是Twitter推出的一个用于前端开发的开源工具包.它 由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架.现在在网上已经有 ...

  2. iframe父页面获取子页面的高度

    最近做项目中用到了iframe,子页面更改父页面的高度,经过九九八十一难,找到了解决的办法. $(window).load(function() {  var h=$(document).height ...

  3. 浅析css布局模型1

    css是网页的外衣,好不好看全凭css样式,而布局是css中比较重要的部分,下面来分析一下常见的几种布局. 流动模型 流动模型是网页布局的默认模式,也是最常见的布局模式,他有两个特点: 1.块状元素都 ...

  4. Emacs学习心得之 基础操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础操作 1.前言与学习计划2.Emacs基础操作 一. 前言与学习计 ...

  5. 服务 {49A27252-A326-4EF1-B698-6EBC7068833C} 的计时器作业 id {573BE459-DF82-481C-84BD-CA14D287450B} 配置刷新的上一个实例仍在运行,因此将跳过当前的实例。请考虑增加作业之间的时间间隔。

    在SharePoint2007的错误日志中发现大量如下错误: 07/02/2013 16:17:25.99     OWSTIMER.EXE (0x0958)     0x097C    Window ...

  6. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q52-Q55)

    Question 52You are responsible for rebranding the My Sites section of a corporate SharePoint 2010 fa ...

  7. win7---远程桌面相关的服务

    如果对方连接不到你,请将服务设置为自动,并重启电脑.

  8. 自定义标签 与 JSTL(JSP Standard Tag Library)

    1.自定义标签 [理解]     [1]简介            > 在JSP2.0以后,在jsp页面中不建议使用脚本片段<% %>和JSP表达式<%= %>     ...

  9. Ajax最详细的参数解析和场景应用

    4.1.定义和用法 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 J ...

  10. get set 中 快捷键生成的get方法中 renturn 没有 this.对象 中的this 解决方法

    选EDIT  进行修改