C#创建并调用dll

文章目录

      • 1.VS2019创建C#主程序
      • 2.编译主程序
      • 3.添加类库工程,并添加计算逻辑
      • 4.给主程序添加引用项
      • 5.重新编译主程序
      • 6.主程序添加测试逻辑

1.VS2019创建C#主程序

在这里插入图片描述

2.编译主程序

debug目录下生成exe:
在这里插入图片描述

3.添加类库工程,并添加计算逻辑

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加计算逻辑:

namespace Calculate
{
    public class CalculateAssistant
    {
        // +
        public double Sum(double a, double b)
        {
            return a + b;
        }
        public Int64 Sum(Int64 a, Int64 b)
        {
            return a + b;
        }
        // -
        public double Sub(double a, double b)
        {
            return a - b;
        }
        public Int64 Sub(Int64 a, Int64 b)
        {
            return a - b;
        }
        // *
        public double Multiple(double a, double b)
        {
            return a * b;
        }
        public Int64 Multiple(Int64 a, Int64 b)
        {
            return a * b;
        }
        // /
        public double Divide(double a, double b)
        {
            return a / b;
        }
        public Int64 Divide(Int64 a, Int64 b)
        {
            return a / b;
        }
    }
}

4.给主程序添加引用项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.重新编译主程序

在这里插入图片描述
先生成依赖项目,再生成主程序:
在这里插入图片描述

debug目录增加了dll文件:
在这里插入图片描述

6.主程序添加测试逻辑

using Calculate;

namespace Main
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Add_Click(object sender, EventArgs e)
        {
            Calculate.CalculateAssistant calc = new CalculateAssistant();
            double result = calc.Sum(double.Parse(textBox1.Text),double.Parse(textBox2.Text));
            textBox3.Text = result.ToString();            
        }

        private void Sub_Click(object sender, EventArgs e)
        {
            Calculate.CalculateAssistant calc = new CalculateAssistant();
            double result = calc.Sub(double.Parse(textBox1.Text), double.Parse(textBox2.Text));
            textBox3.Text = result.ToString();
        }

        private void Multi_Click(object sender, EventArgs e)
        {
            Calculate.CalculateAssistant calc = new CalculateAssistant();
            double result = calc.Multiple(double.Parse(textBox1.Text), double.Parse(textBox2.Text));
            textBox3.Text = result.ToString();
        }

        private void Divide_Click(object sender, EventArgs e)
        {
            Calculate.CalculateAssistant calc = new CalculateAssistant();
            double result = calc.Divide(double.Parse(textBox1.Text), double.Parse(textBox2.Text));
            textBox3.Text = result.ToString();
        }
    }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/154482.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

应用层使用select进行检测连接状态

可以参考TCP连接保活机制来设计应用层的连接状态监测,同时需要注意到有两个关键点: 1.需要使用定时器,这可以通过使用 I/O 复用自身的机制来实现,这点可以先看一下《使用select实现定时任务》; 2.需要设计一个 PING-PO…

alias linux 命令别名使用

如果在系统中你想要快速的完成一个命令,你可以使用alias命令: 如: alias ppsystemctl status httpd输入pp命令后即可得到如下结果 但这之时临时生效,一旦重启机器,命令就会失效;想要永久生效,…

vue-admin-template

修改登录接口 1.f12查看请求接口 模仿返回数据写接口 修改方式1 1.在env.devolopment修改 修改方式2 vue.config.js 改成本地接口地址 配置转发 后端创建相应接口,使用map返回相同的数据 修改前端请求路径 修改前端返回状态码 utils里面的request.js

成功解决:com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 前言 使用Spring 整合 mybatis的时候 报错…

ES5中实现继承

本篇文章主要说明在ES5中最通用最兼容的继承实现方式,继承作为面向对象的三大特性之一,在js中实现继承对代码的简洁性,逻辑的连贯性都有很大的帮助。 实现思路 封装创建中间联系对象的函数 继承可以简单理解为建立子类和父类之间的联系&…

Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )

文章目录 一、表查询数据准备及测试环境搭建模型层前期准备测试环境搭建代码演示 二、ORM操作相关方法三、ORM常见的查询关键字四、ORM底层SQL语句五、双下划线查询数据查询(双下划线)双下划线小训练Django ORM __双下划线细解 六、ORM外键字段创建基础表…

【408】计算机学科专业基础 - 操作系统

一、计算机系统概述 1.简介 什么是操作系统? 操作系统(Operating Ststem, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口…

AI中文版怎么用,版本分享,GPT官网入口

网页版上线啦,在线助力大学生、上班族的高效生活! GPT4.0是OpenAI最新推出的聊天模型,它的语言理解和生成能力比以前的版本更强大。对于忙碌的上班族来说,GPT4.0能帮助你高效处理工作中的大部分写作任务,比如撰写报告…

【搭建统一的IOS开发环境,Ruby链之CocoaPods】

CocoaPods 前提HomebrewHomebrew是什么?Homebrew怎么安装?Homebrew怎么用?有哪些必须知道的命令Homebrew和CocoaPods的关系卸载Homebrew RubyrbenvRubyGems 和 Bundler安装Ruby管理Ruby更新Ruby替换Ruby镜像方式1方式2 CocoaPods安装CocoaPodsCocoaPods使用安装的…

嵌入式养成计划-53----ARM--串口通信

一百三十四、串口通信 134.1 串口的概念 串口(UART):Universal asynchronous receiver transmitter (USART/UART),通用异步接收发送器通过串口可以实现两个不同机器之间的信息交互串口通信属于总线通信的一种 134.2 总线的概念…

基于C#实现猴子偷桃

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个。到第 10 天刚好剩一个。问猴子第一天摘了多少个桃子? 分析: 这…

11.16 知识总结(模型层更多内容)

一、 多表查询&#xff08;跨表查询&#xff09; <br class"Apple-interchange-newline"><div></div> 子查询&#xff1a;分步查询 链表查询&#xff1a;把多个有关系的表拼接成一个大表(虚拟表) inner join left join right join 1.1 基于双下划…

电脑版微信图片保存在哪个文件夹,如何一次性全选保存

8-7 电脑版的微信聊天&#xff0c;接收到图片后&#xff0c;会保存到微信的个人数据文件夹中&#xff0c;但是有个问题是这些图片都是加密保存的&#xff0c;普通情况下&#xff0c;确实无法人工去取出来&#xff0c;但是下面有方法可以快速将这些图片在脱离微信的情况下&…

盲目跟风考PMP认证?PMP还剩多少含金量?

pmp含金量在如今&#xff0c;含金量还是不错的&#xff0c;但是也不要盲目跟风考&#xff0c;要确定它对你有用&#xff0c;你也会使用它。 什么人适合考PMP? 1、有项目管理实践经验&#xff1a;PMP是基于项目管理实践经验的认证考试&#xff0c;因此有项目管理实践经验的人…

vue3实现数据大屏内数据向上滚动,鼠标进入停止滚动 vue3+Vue3SeamlessScroll

1.效果图 2.npm下载依赖及main.js文件配置 npm install vue3-seamless-scroll --saveimport vue3SeamlessScroll from vue3-seamless-scroll;app.use(vue3SeamlessScroll) 3.html代码 <!-- scrollFlag为true时再渲染,vue3只要涉及到传值子页面需要加flag判断&#xff0c;否…

从哪里下载 Oracle database 11g 软件

登入My Oracle Support&#xff0c;选择Patches & Updates 标签页&#xff0c;点击下方的Latest Patchsets链接&#xff1a; 然后单击Oracle Database&#xff0c;就可以下载11g软件了&#xff1a; 安装单实例数据库需要1和2两个zip文件&#xff0c;安装GI需要第3个zip文…

rsync远程同步(rsync+inotify)

目录 一、概述 1、关于rsync 2、rsync的特点&#xff1a; 3、备份方式&#xff1a; 4、同步方式&#xff1a; 二、rsync相关命令 1、rsync常用命令的选项&#xff1a; 2、启动和关闭rsync服务&#xff1a; 3、关闭 rsync 服务 三、 免交互&#xff1a; 1、免密同步&a…

索引的创建和设计原则

文章目录 1. 索引的声明与使用1.1 索引的分类1.2 创建索引 2. MySQL8.0索引新特性2.1 支持降序索引2.2 隐藏索引 3 哪些情况适合创建索引?3.1 字段的数值有唯一性的限制3.2 频繁作为 WHERE 查询条件的字段3.3 经常 GROUP BY 和 ORDER BY 的列3.4 UPDATE、DELETE 的 WHERE 条件…

(七)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、五种算法&#xff08;DBO、LO、SWO、COA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启…

Linux Traefik工具Dashboard结合内网穿透实现远程访问

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件&#xff0c;能轻易的部署微服务。它支持多种后端 (D…