zoukankan      html  css  js  c++  java
  • 面向对象(四) is和as运算符,类库,委托

    一、is 和 as 运算符

    1、object数据类型

    object是所有数据类型的基类,所有数据类型都是从object中衍生出来的。所有数据类型都是object的子类型。

    比如数组在添加数据时,默认就是object类型的数据,系统会隐式转换为数据对应的类型。

    基类可以隐式转换为子类,但子类无法隐式转换为基类。

    如果一个数组中的数据的类型未知,那么提取数据时就需要先判断和转换数据类型,这个时候就会用到is和as运算符。

    2、is运算符

    is运算符用于判断一个数据是否是某个数据类型。

    对象 is 类型 返回bool类型

    //数组 
    ArrayList arr =new ArrayList();
    arr.add(一些数据);
    
    //判断
    bool a = arr[2] is Radom;

    如果该数据是is后面的数据类型,那么会返回true,否则返回false。

    可以配合遍历使用。

    foreach(object o in arr)
    {
        if(o is Random)
        {
            Random r = (Random)o;
            r.Next(0,11);
        }
    }

    3、as运算符 

    as运算符可以用于转换未知数据类型到指定类型,如果转换成功,可以正常使用,如果转换失败,会返回null。

    对象 as 类型 

    如果转换成功,返回对象类型。

    如果转换失败,不会报错,而是返回null值。

    同样配合遍历使用。

    foreach(object o in arr)
    {
        Random r = o as Random;
        if(r != null)
        {
            r.Next(0,11);
        }
    }

    二、类库

    类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口、抽象类和具体类。

    类库的后缀名为.dll,即dll文件就是类库。

    类库是加密的,只有计算机能读取。

    需要类库时,将写好的类用VS生成dll文件即可。

    添加类库在解决方案 - 引用 - 右键 - 添加。然后点工具 - 生成解决方案。

    三、委托

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。

    委托可以理解为函数的中间人,他最终指向一个函数方法。

    //委托代码
    public delegate int Weituo(int a,int b)
    
    //
    public class Lei
    {
        public int Fangfa(int a,int b)
        {
            return a+b;
        }
    }
    
    //建立委托
    Lei e = new Lei();
    Weituo f = e.Fangfa.

    //调用委托
    int g = f(a,b)

    委托的关键词是 delegate 。

    委托需要写在main函数外面,class里面。

    委托的参数类型和返回类型必须和被委托的方法一样。

    委托是把一个方法变成了变量,所以可以把方法作为变量用到另一个方法里。

    委托更多用在事件当中。

  • 相关阅读:
    简易的sniffer程序
    ubuntu 13.10 Rhythmbox不能播放mp3 和中文乱码的问题
    5.单行函数,多行函数,字符函数,数字函数,日期函数,数据类型转换,数字和字符串转换,通用函数(case和decode)
    Java设计模式-单例模式
    WordPress的用户系统总结
    STM8S EEPROM 操作
    简化ui文件转换写法
    大型网站架构之应用服务器集群化
    大型网站架构之分布式缓存
    大型网站架构之JAVA中间件
  • 原文地址:https://www.cnblogs.com/shenyuyaqing/p/7106473.html
Copyright © 2011-2022 走看看