zoukankan      html  css  js  c++  java
  • 类库、委托、is as运算符、泛型集合

    类库:

    说白了,就是让别人调用你写的方法,并且不让别人看到你是怎么实现的。

    如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目。

    1、C#源代码文件,包括在自己的项目中


    2、类库,.dll

    优点:你写的方法别人看不到实现过程,保密性强

    缺点:如果你写的方法有错误,别人无法更改

    ---------------------------------------------------------
    委托:
    可以理解为 函数的指针

    delegate - 定义关键词

    //声明委托类型
    public delegate int FirstDel(int aaa, int bbb);

    //创建委托变量,赋值,函数指向
    FirstDel f1 = new JiaJian().Jia;


    int c = f1(10, 20);

    -----------------------------------------------------------

    var:万能类型

    object:所有类型的基类

    as:类型转换,如果转换不成功,不会报错,而是返回一个null

    is:判断某个变量/对象,是不是某一种类型,返回bool值

    泛型集合: List<T>

    不固定长度,固定类型的一种集合

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using 加减法;//引用所需要的类,然后再进行实例化
    using ClassLibrary1;
    
    namespace 类库_委托_is_as运算符_泛型集合
    {
        class Program
        {
            //委托,关键词delegate
            //声明委托类型
            public delegate int FirstDel(int a1, int b1);
    
            public void a2(FirstDel f, int a)
            { 
            }
    
    
            static void Main(string[] args)
            {
                int one = 10;
                int two = 20;
                //写一个加减运算方法,可以另外写一个项目和类,在该项目中进行引用即可
    
                //右键项目,选择倒数第二个文件资源管理器,把需要添加的类复制粘贴到需要的项目中,
                //或者可以点击解决方案中的显示所有文件,续重需要添加的类,单击即可
    
                //实例化,一定要先引用所需要的那个类
                //使用方式一:普通方式
                jiajian j = new jiajian();
                int c = j.jia(one, two);
                Console.WriteLine(c);
    
                //使用方式二:匿名对象使用方式,可以简化代码
                int h = new jiajian().jia(10, 20);
                Console.WriteLine(h);
    
                //一、类库的使用,先引用
    
                //右键项目,选择倒数第二个文件资源管理器,bin文件夹,debug文件夹,后缀为.dll的文件就是类库,
                //复制到需要的项目文件夹中的bin文件夹,中的debug文件夹。
                //用记事本打开的话,现实的是乱码,因为被编译加密了。
    
                int d = new chengchu().chengfa(one, two);
                Console.WriteLine(d);
    
    
                //二、委托,函数的指针
                //创建委托变量,赋值,函数指向
                //委托没有办法被实例化,可一直想一个函数,但结构必须一样
                FirstDel f1 = new jiajian().jia;//定义了一个FirstDel f1这样一个委托变量,把jia这个方法指向到f1身上
                int g = f1(10, 20);//被指向后f1就代表这个方法,并可以使用
                Console.WriteLine(g);
    
    
                new Program().a2(f1, 10);
    
    
                //三、知识点补充
                //1、is和as运算符
                object ob = new jiajian();//单独拿出ob不知道其类型,但需要转换成相应类型使用,
                //chengchu cc = (chengchu)ob;//以前都是用强转,语法上不报错。但运行时报错
                if (ob is chengchu)//is的意思是判断一下某个变量或对象是不是某一种类型,返回的是bool类型(true或false)
                {
                    chengchu cc = ob as chengchu;//用as这样写如果装换不成功,程序运行时不会报错,
                                                 //返回的是null(其他的int,string等类型都是正常转换)
                }
    
    
                //2、泛型集合  List<T>  :List是集合  T表示是任意类型
                //不固定长度,但是固定类型的一种集合
    
                List<chengchu> list = new List<chengchu>();//这样写,list集合里面只能放chengchu类型,
                                                      //放其他类型报错,取出来的也不用类型转换,都是chengchu类型
    
    
    
                Console.ReadLine();
            }
        }
    }

    面向对象思维导图整理

  • 相关阅读:
    Java基础知识面试题(2021年最新版,持续更新...)整理
    windows10 cmd窗口输出卡住(看这篇就够了)
    windows10 powershell窗口输出卡住(看这篇就够了)
    Golang函数相关
    内存对齐详解
    Go编程模式Pipeline
    管道符、重定向与环境变量(Linux就该这么学第三章)
    GMP模型简介
    新手必须掌握的Linux命令(Linux就该这么学第二章)
    Goland运行项目报错:CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者。
  • 原文地址:https://www.cnblogs.com/juyangchao12/p/5863486.html
Copyright © 2011-2022 走看看