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();}}
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一题(LeetCode)----数组--长度最小的子数组

每日一题(LeetCode)----数组–长度最小的子数组 1.题目( 209.长度最小的子数组) 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &…

国内领先的五大API接口供应商

API(Application Programming Interface)接口,现在很多应用系统中常用的开放接口,对接相应的系统、软件功能,简化专业化的程序开发。作者用过的国内比较稳定的API接口供应商有如下几家,大家可以参考选择&am…

矢量绘图软件 Sketch mac中文版介绍

Sketch mac是一款为用户提供设计和创建数字界面的矢量编辑工具。它主要用于UI/UX设计师、产品经理和开发人员,帮助他们快速设计和原型各种应用程序和网站。 Sketch具有简洁直观的界面,以及丰富的功能集,使得用户可以轻松地创建、编辑和共享精…

历年国自然标书申请 面上项目614份 2001-2019年 面上标书

这里列举几例 清华任丰原 哈尔滨 杨宝峰 # 关注微信:生信小博士,10元领取 关注微信之后, 点开付费合集即可领取

RabbitMQ-基础篇-黑马程序员

代码: 链接: https://pan.baidu.com/s/1nQBIgB_SbzoKu_XMWZ3JoA?pwdaeoe 提取码:aeoe 微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调…

hash路由模式

hash模式 hash模式是一种把前端路由的路径用井号 # 拼接在浏览器 URL 后面的模式。 一个完整的 URL 包括:协议、域名、端口、虚拟目录、文件名、参数、锚。 https://www.wangyuegyq.top/utils/index.html?name123&phone123#home协议:https域名&am…

Windows 11 配置 ssh server 服务

Windows 11 配置 ssh server 服务 1. 安装 ssh server配置 ssh key 登陆设置默认使用 Powershell设置默认访问路径启动 sshd 和设置开机自动启动安装 vim (Powershell 中可以直接使用) 1. 安装 ssh server 打开 “设置” 》 “应用”,然后打开 “可选配置”&#x…

考虑区域多能源系统集群协同优化的联合需求侧响应模型(matlab代码)

该程序复现《考虑区域多能源系统集群协同优化的联合需求侧响应模型》文献模型,程序的核心是对多个区域级多能源系统互联系统进行多目标优化,并且考虑联合需求侧响应,以多个区域多能源系统运行总成本最小、碳排放最小为目标,建立多…

【已解决】启动SSH服务报“could not load host key”错误

文章目录 问题复现解决方案 问题复现 解决方案 yum remove openssh-* && yum install -y openssl openssh-server && systemctl restart sshd

Qt 之自定义控件(开关按钮)

Qt 之自定义控件(开关按钮) 原理源码运行结果 接触过IOS系统的童鞋们应该对开关按钮很熟悉,在设置里面经常遇到,切换时候的滑动效果比较帅气。 通常说的开关按钮,有两个状态:on、off。 下面,我们…

网工内推 | 国企、上市公司售前,CISP/CISSP认证,最高18K*14薪

01 中电福富信息科技有限公司 招聘岗位:售前工程师(安全) 职责描述: 1、对行业、用户需求、竞争对手等方面提出分析报告,为公司市场方向、产品研发和软件开发提供建议; 2、负责项目售前跟踪、技术支持、需…

【软考篇】中级软件设计师 第四部分(三)

中级软件设计师 第四部分(三) 三十四. 结构化开发方法34.1 内聚34.2 耦合 三十五. 测试基础知识三十六. 面向对象36.1 UML图36.2 设计模式36.3 数据流图 读前须知: 【软考篇】中级软件设计师 学前须知 上一章节: 【软考篇】中级软…

【全网首发】【Python】Python控制parrot ARDrone 2.0无人机

🎉欢迎来到Python专栏~Python控制parrot ARDrone 2.0无人机 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:Python学习专栏 文章作者技术和水平有限,如果文中出现错误…

基于IDEA创建Maven工程及注意事项

Java全能学习面试指南:https://javaxiaobear.cn 1. 概念梳理Maven工程的GAVP Maven工程相对之前的项目,多出一组gavp属性,gav需要我们在创建项目的时候指定,p有默认值,我们先行了解下这组属性的含义: Ma…

java的Exception.getMessage为null

之前捕获异常后调用异常的getMessage写日志,日志写的竟然是null,不可思议。发现要调用异常的getCause().getMessage()才能得到异常信息 刻意把密码改错,让异常直达界面,免得有问题时候只能猜

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

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

区域入侵AI算法如何应用在工地场景,保卫工地施工安全?

在工地、厂区等施工场所,安全保障是必不可少的,特别是在人工智能技术日益成熟的今天,如何利用旭帆科技AI智能视频中的区域入侵算法助力智慧工地、保障工地安全呢? 1、建筑物周界安全 TSINGSEE青犀区域入侵算法可以用于监控建筑物…

M系列 Mac安装配置Homebrew

目录 首先,验证电脑是否安装了Homebrew 1、打开终端输入以下指令: 2、如图所示,该电脑没有安装Homebrew ,下面我们安装Homebrew 一、官网下载 (不建议) 1、我们打开官网:https://brew.sh/ …

C++ 模板 (一)

1. 泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) { int temp left; left right; right temp; } void Swap(double& left, double& right) { double temp left; left right; right temp; } void Swap(char&…

1116中信笔试

1116中信笔试 int, Integer的区别,相等如何判断结果Java的异常处理数据库的事务操作Redis的基本数据类型问了HashMap底层实现TCP协议MySQL的隔离级别创建线程的几种方式双亲委派机制 ,它的优点linux命令(查看线程) java和数据库ha…