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));
        }
    }
}
相关文章
|
6月前
|
C#
C# 解决引用dll,出现dll不可以使用等问题
C# 解决引用dll,出现dll不可以使用等问题
|
1月前
|
C#
Delphi可不可以制作出像c#那样的dll类库?
在Delphi中,创建DLL项目(如dll.dpr)并定义一个类TMyCls后,在另一个项目(如test.dpr)中可以引入此DLL并直接实例化和调用类的方法。然而,Delphi目前主要支持两种DLL形式:动态链接库(需显式声明exports,仅支持函数调用)和ActiveX DLL(需定义IDL接口)。这两种方式都较为繁琐。相比之下,C# 的DLL类库更为便捷,编写并编译后即可在其他项目中直接使用。
|
3月前
|
C#
C# WPF 将第三方DLL嵌入 exe
C# WPF 将第三方DLL嵌入 exe
77 0
|
3月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
5月前
|
算法 C#
C#开源实用的工具类库,集成超过1000多种扩展方法
C#开源实用的工具类库,集成超过1000多种扩展方法
|
5月前
|
安全 编译器 API
程序与技术分享:C#调用DLL的几种方法
程序与技术分享:C#调用DLL的几种方法
81 0
|
6月前
|
XML 缓存 算法
C#非强签名dll搜索顺序
C#非强签名dll搜索顺序
|
6月前
|
XML 移动开发 前端开发
C#HtmlAgilityPack类库再回顾
C#HtmlAgilityPack类库再回顾
55 0
|
6月前
|
数据采集 JSON API
C#爬虫项目实战:如何解决Instagram网站的封禁问题
C#爬虫项目实战:如何解决Instagram网站的封禁问题
|
开发框架 .NET Java
C#下反射动态加载dll后如何卸载?
C#下反射动态加载dll后如何卸载?