C# 创建与引用dll类库项目实战

简介: 本文目录1. 类的访问修饰符2. 新建类库项目3. 编辑类代码4. 编译并生成dll文件5. 调用该dll

1. 类的访问修饰符

先看下三种类的访问修饰符情况:


public class//公开类,都能访问该类

internal class//仅能在当前项目访问类

class//同internal class

1

2

3

所以,要想引用dll中的类,在创建类库项目时要明确指定该类为public class。


2. 新建类库项目

打开VS,点击文件-新建项目,选中类库模板,将项目命名为ClassLibraryCalculate,如图:

image.png

3. 编辑类代码

右击自动生成的类文件Class1.cs,重命名为Calculate.cs,并修改类代码如下:

namespace ClassLibraryCalculate

{

   public class Calculate

   {

       public int add(int a, int b)

       {

           return a + b;

       }

   }

}

1

2

3

4

5

6

7

8

9

10

4. 编译并生成dll文件

点击菜单栏生成-生成ClassLibraryCalculate后,输出栏提示如下,可见生成了ClassLibraryCalculate.dll,并且也提示了该文件所在的目录。


1>------ 已启动生成:  项目: ClassLibraryCalculate, 配置: Debug Any CPU ------

1>  ClassLibraryCalculate -> E:\WorkPlace\VSWork\ClassLibraryCalculate\ClassLibraryCalculate\bin\Debug\ClassLibraryCalculate.dll

========== 生成:  成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========


5. 调用该dll

新建一个控制台项目,右击项目名-添加-引用,添加上一步生成的dll。如图,在对象浏览器还可以查看该dll中的类和方法。

image.png

编写代码调用dll中的add方法:

方法1:通过命名空间ClassLibraryCalculate调用Calculate类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LanguageDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            ClassLibraryCalculate.Calculate cal = new ClassLibraryCalculate.Calculate();
            Console.WriteLine(cal.add(1,2));
        }
    }
}

方法2:通过using命名空间直接调用类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ClassLibraryCalculate;
namespace LanguageDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Calculate cal = new Calculate();
            Console.WriteLine(cal.add(1,2));
        }
    }
}
相关文章
|
1月前
|
C#
C# 解决引用dll,出现dll不可以使用等问题
C# 解决引用dll,出现dll不可以使用等问题
|
1天前
|
安全 编译器 API
程序与技术分享:C#调用DLL的几种方法
程序与技术分享:C#调用DLL的几种方法
|
24天前
|
算法 C#
C#开源实用的工具类库,集成超过1000多种扩展方法
C#开源实用的工具类库,集成超过1000多种扩展方法
|
1月前
|
XML 移动开发 前端开发
C#HtmlAgilityPack类库再回顾
C#HtmlAgilityPack类库再回顾
16 0
|
1月前
|
XML 缓存 算法
C#非强签名dll搜索顺序
C#非强签名dll搜索顺序
|
1月前
|
数据采集 JSON API
C#爬虫项目实战:如何解决Instagram网站的封禁问题
C#爬虫项目实战:如何解决Instagram网站的封禁问题
|
9月前
|
开发框架 .NET Java
C#下反射动态加载dll后如何卸载?
C#下反射动态加载dll后如何卸载?
|
10月前
|
C#
56【WinForm】WinForm创建类库项目,并同时在项目中调用类库文件C#
【WinForm】WinForm创建类库项目,并同时在项目中调用类库文件C#
139 0
|
11月前
|
存储 安全 API
10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(net,net core,C#)
10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(net,net core,C#)
|
网络协议 C# C++
关于 C#调用一个C/C++dll库运行时实现多个应用(静态变量区分) 的解决方法
关于 C#调用一个C/C++dll库运行时实现多个应用(静态变量区分) 的解决方法
关于 C#调用一个C/C++dll库运行时实现多个应用(静态变量区分) 的解决方法