精选文章 C#封装成DLL,并在C#中调用

C#封装成DLL,并在C#中调用

作者:苏守坤 时间: 2019-11-07 10:48:56
苏守坤 2019-11-07 10:48:56

在项目开发时,需要将自己写的C#方法封装,供别人二次开发使用,方法就是封装成DLL,让别人调用就好了

一、C#封装成DLL

1、在VS中创建项目选择类库,命名 myDll

  C#封装成DLL,并在C#中调用1

2、建立好项目后自动生成的代码如下:

  C#封装成DLL,并在C#中调用2

  代码修改如下,添加自己要封装的C#代码,注意修饰符必须为public

C#封装成DLL,并在C#中调用3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace myDLL
{
    public class Class1
    {
        //封装的DLL函数
        public int add(int x, int y)
        {
            return x + y;
        }
    }
}

C#封装成DLL,并在C#中调用4

3、点击项目生成解决方案,然后在项目目录的bin/debug下即可发现封装好的dll文件

  C#封装成DLL,并在C#中调用5

注意:封装成DLL时程序集名字要跟程序里的 namespace 命名一致,如下图,否则应用DLL时无法引用成功。

  C#封装成DLL,并在C#中调用6

  C#封装成DLL,并在C#中调用7

 

 

二、C#中调用该DLL

1、新建WPF项目testUseMyDll,在引用里添加testMyDll项目封装好的类库。

  C#封装成DLL,并在C#中调用8

2、把DLL放在项目文件夹的bin目录的Debug目录下

3、点击项目里的引用添加DLL

  C#封装成DLL,并在C#中调用9

  C#封装成DLL,并在C#中调用10

  C#封装成DLL,并在C#中调用11

  添加完后可以在应用里看到DLL

  C#封装成DLL,并在C#中调用12

4、使用using包含进去

using myDLL;

5、添加一个测试按钮,按下就调用该DLL的函数

  C#封装成DLL,并在C#中调用13

  跳转到按钮程序部分添加调用代码

            Class1 test = new Class1(); //新建类
            int a = test.add(1,2); //调用DLL的函数
            Console.WriteLine(" a = " + a);//查看调用结果

6、运行结果如下

   C#封装成DLL,并在C#中调用14

7、最后附上完成的测试代码图

  C#封装成DLL,并在C#中调用15

 

说明:C#封装的DLL是非标准的DLL(托管类),不可以用 DllImport 调用,DllImport是用来调用标准类(非托管类)的,这类DLL一般是用C++写的

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:别名机制

下一篇:fastjson对象,JSON,字符串,map之间的互相转换

您可能感兴趣

  • Java异常面试题(2020最新版)

    文章目录 Java异常架构与异常关键字 Java异常简介 Java异常架构 1. Throwable 2. Error(错误) 3. Exception(异常) 运行时异常 编译时异常 4. 受检异常与非受检异常 受检异常 非受检异常 Java异常关键字 Java异常处理 声明异常 抛出异常 捕获异常 如何选择异常类型 常见异常处理方式 直接抛出异常 封装异常再抛出 捕获异常 自定义异常 t...

  • 手写mybatis框架(一)通过动态代理简单实现查询功能

    git地址:点我 在手写mybatis简化版框架先了解一下mybatis框架的执行流程。 一、Mybatis框架执行流程 1.配置文件有两种,一个为主配置文件,一个为映射文件。 主配置文件:配置了jdbc等环境信息。 映射文件:配置了接口对应的sql语句映射。 这两个配置文件会被封装到Configuration中。 2.通过mybatis配置文件得到SqlSessionFactory。 3....

  • 图森未来如何借助云缩短60%模型训练时间

    简介: 阿里云飞天AI加速器+Serverless容器,帮助图森未来提升资源利用率。 图森未来(TuSimple)成立于2015年,是一家专注于L4级无人驾驶卡车技术研发与应用的人工智能企业,已经实现卡车在干线物流场景和半封闭枢纽场景下的无人干预驾驶。图森未来品牌旗下产品——图森未来 L4 级别无人驾驶卡车能够实现环境感知、定位导航、决策控制等自动驾驶核心功能,可应用于高速公路货运和港内集装...

  • 大型架构及配置技术ansible(一)之ansible基础,ad-hoc,批量配置管理,ansible七种武器,JSON简介,YAML简介

    一、ansible基础 6台虚拟机(2cpu,1.5G以上内存,10G以上硬盘,1块网卡) 主机名 IP地址 角色 ansible40 192.168.4.40/24 管理主机 web41 192.168.4.41/24 托管主机 web42 192.168.4.42/24 托管主机 db43 192.168.4.43/24 托管主机 db44 192.168.4.44/24 托管主机 ca...

  • 编程小白的毕设开发教程-filter实战

    在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。 一、Decorator设计模式 1.1、Decorator设计模式介绍   当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强: 编写子类,覆盖需...

  • 【STM32F429开发板用户手册】第38章 STM32F429的FMC总线应用之是32路高速IO扩展

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第38章 STM32F429的FMC总线应用之是32路高速IO扩展 本章教程为大家讲解利用STM32429的FMC总线扩展出32路高速IO,且使用简单,实际项目中也比较有实用价值。 目录 第38章 STM32F429的FMC总线应用之是32路高速IO扩展 38.1 初...

  • Web前端常见跨域解决方案

    一、通过Jsonp跨域 二、document.domain+iframe 跨域 三、location.hash+iframe 跨域 四、window.name+iframe 跨域 五、postMessage 跨域 六、跨域共享资源 (CORS) 七、nginx 代理跨域 八、node js中间件代理跨域 九、WebSocket 协议跨域 1、通过Jsonp跨域: 通常为了减轻Web服务器的负...

  • 【计算机网络】第七章:网络安全

    【计算机网络】第七章:网络安全 目录 网络安全问题概述 1.1.计算机网络面临的安全性威胁 1.2.被动攻击和主动攻击 1.3.计算机网络通信安全的目标 1.4.恶意程序(rogue program) 1.5.计算机网络安全的内容 1.6.一般的数据加密模型 两类密码体制 一、对称密钥密码体制 1.1.对称密钥的缺点与优点 1.2.数据加密标准 DES 1.3.DES 的保密性 二、公钥密码...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。