首页 > 编程 > C# > 正文

在Visual C#.NET中创建类库(DLL)

2023-05-17 11:42:00
字体:
来源:转载
供稿:网友

使用C#创建一个DLL文件是非常简单的事情。相信我,这比使用VC++要简单的多。我把这个教程分成两部分。(1)建立一个类库;(2)建立客户端程序来检测这个DLL。

第一部分:创建一个类库

1、创建一个空类库项目:

选择“文件”->新建->项目->Visual C#项目->类库(Class Library). 输入项目的名字、使用【浏览】按钮选择合适的路径,单击确定(OK).如图1. 

图 1.

2、项目及其文件

项目浏览器中显示本项目添加了两个C#类. 第一个是 AssemblyInfo.cs,第二个是Class1.cs. 我们不必关心AssemblyInfo. 我们只把注意力集中在Class1.cs上.如图2.

图 2.

关于项目中的命名空间

双击Class1.cs文件,你会看到一个mcMath命名空间(namespace)(注意:原文作者使用的项目名称为mcMath,因此自动生成的命名空间名称为mcMath,根据你设置的项目名称不同,这里的命名空间名字不会一样。) 在客户端程序中可以通过引用这个命名空间而使用这里面的类. 

using System;

namespace mcMath


        /// <summary> 
        ///
Summary description for Class1. 
        /// </summary>
 
        public class
Class1 
       


                public Class1() 
               

                        // 
                        // TODO: Add constructor logic here 
                        // 
               
        }
}

通过生成这个新建立的项目确认没有任何问题. 生成项目后,在你的项目中的“bin/debug “文件夹中,你会看到一个mcMath.dll文件. 

3、为类库添加方法 

通过视图菜单打开类视图. 你马上会看到类Class1没有任何方法和属性。就让我们为其添加一个方法和属性吧。参加图 3.

图 3.

在类Class1上右击,选择“添加->添加方法... ” 参加图4.

图4.

将会弹出C#方法设计器. 填入方法名称、访问类型、返回值类型、参数名字和注释。使用【添加】或【移除】按钮从参数列表中添加或删除参数。这里添加了一个无参测试方法:mcTestMethod. 参加下图5.

图5.

我准备再添加一个方法: long Add( long val1, long val2 ). 这个方法是通过两个数字然后输出他们的和.完成设置单击“完成”. 参见图6.

图 6.

上面的操作向类中添加两个方法,如下面所示:

/// <summary>
/// //This is a test method
/// </summary>
public void mcTestMethod()
{  
}

public long Add(long val1, long val2)
{  
}

4、添加属性

用同样的方法打开C# 属性向导,向类中添加一个属性,参见图7.

图 7.

本操作将打开C#属性向导。在这里,你可以键入你的属性名称、类型和访问类型。同时,你可以设置get访问器、set访问器或同时选择两者。你也可以指定属性是静态的还是虚拟的。本类中添加了一个共有的Extra属性,类型为bool型,并选择get/set.如图8.

图 8.

添加完一个方法和一个属性后,类视图中的样子如图9所示(图中已展开了类节点).

图 9.

如果你仔细地看一下Class1类,向导为我们添加了两个方法. 

/// <summary>
/// //This is a test property
/// </summary>
public bool Extra

        get 
       
                return true; 
       
        set 
       
        }
}

5、为类添加其他代码 

现在为方法和属性添加代码。并且我想把Class1更名为mcMathComp,因为 Class1含义不清,当你在客户端应用程序中使用这个类时会产生一些问题。确定你已改变了类的名字及它的结构.

注意:我不准备为mcTestMethod方法添加任何代码,如果你想那可以添加一些。

using System;

namespace mcMath


        /// <summary> 
        ///
Summary description for Class1. 
        /// </summary>
 
        public class
mcMathComp 
        {

                private bool bTest = false

                public mcMathComp() 
               

                        // TODO: Add constructor logic here 
               

                /// <summary> 
                ///
//This is a test method 
                /// </summary>
 
                public void
mcTestMethod() 
                { }

                public long Add(long val1, long val2) 
               

                        return
val1 + val2; 
                }

                 /// <summary> 
                ///
//This is a test property 
                /// </summary>
 
                public bool
Extra 
               

                        get
 
                       

                                return
bTest; 
                       

                        set
 
                       
                                bTest = Extra ; 
                       
               
        }
}

6、生成 DLL

现在生成DLL,并检查你项目中的 bin/debug 目录. 你会看到生成的DLL文件。是不是非常简单? Huh? :). 

第二部分:建立客户端应用程序

在C#中调用一个DLL文件中的方法和属性也是很简单的事情。按照下面的步骤来使用DLL,看看它有多么的简单。

1、创建控制台应用程序 

选择 文件->新建->项目->Visual C# 项目->控制台应用程序. 这里将在控制台应用程序中来检测刚才创建的DLL. 参见图10.

图 10.

2、添加命名空间的引用

下一步是向库中添加引用.你可以使用添加引用菜单来添加一个引用。选择 项目->添加引用. 如图11.

图 11.

在这一页中,点击【浏览】按钮来浏览库。参加图 12.

图 12.

找到你刚才创建的DLL,并单击【确定】.如图 13.

图 13.

添加引用向导将把你的库的引用添加到当前项目中来,如图 14.

图 14.

添加完mcMath库的引用后, 你会在解决方案中的树形节点中看到这个引用.如图 15.

图15.

3、调用 mcMath 命名空间, 创建 mcMathComp对象并调用它的方法和属性.

距离你调用自己的方法和属性仅有一步之遥了,请按下面的步骤进行:

(1). 使用命名空间

在项目的开头添加using mcMath代码.

using mcMath;

(2).创建 mcMathComp的对象

mcMathComp cls = new mcMathComp();

(3).调用方法和属性

现在你可以调用 mcMathComp 类的方法和属性了。下面使用实例IRes调用方法并返回值,同时在控制台中输出结果。

完整的项目代码列于下边:

 

using System;
using mcMath;

        namespace mcClient
{
        /// <summary>
        /// Summary description for Class1.
        /// </summary>

                class Class1
        {

                        /// <summary>
                /// The main entry point for the application.
                /// </summary>
                [STAThread]
                static void Main(string[] args)
                {
                        mcMathComp cls = new mcMathComp();
                        long lRes = cls.Add( 23, 40 );
                        cls.Extra = false;
                        Console.WriteLine(lRes.ToString());
                }
        }
}

现在编译并运行项目,输出结果如图16所示。

图 16.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表