• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
疯丫头0805
博客园    首页    新随笔    联系   管理    订阅  订阅
类库、委托、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();
        }
    }
}

 

面向对象思维导图整理

 

posted on 2016-09-12 21:55  疯丫头0805  阅读(162)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3