zoukankan      html  css  js  c++  java
  • (原创)c#学习笔记09--定义类05--类库项目

    9.5  类库项目

      除了在项目中把类放在不同的文件中之外,还可以把它们放在完全不同的项目中如果一个项目什么都不包含,只包含类(以及其他相关的类型定义,但没有入口点),该项目就称为类库

      类库项目编译为.dll 程序集,在其他项目中添加对类库项目的引用,就可以访问它的内容(这可以是同一个解决方案的一部分,但这不是必须的)。这将扩展对象提供的封装性,因为类库可以进行修改和更新,而不会影响使用它们的其他项目。这意味着,您可以方便地升级类提供的服务(这会影响多个用户应用程序)。

      下面看一个类库项目的示例和一个利用该项目包含的类的独立项目。

      (1)  在 Chapter09 目录中创建一个“类库”(Class Library)类型的新项目Ch09ClassLib,如图9-10所示。

      (2)把文件Class1.cs重命名为MyExternalClass.cs【在“解决方案资源管理器”(Solution Explorer)窗口中右击该文件,然后选择 “重命名” (Rename), 来重命名该文件名】 。 在弹出的对话框中单击 “是” (Yes)。

      (3) MyExternalClass.cs中的代码己随之自动改变,以反映类名的改变:

    public class MyExternalClass 
    { 
    } 

      (4) 使用文件名MyInternalClass.cs给项目添加一个新类。

      (5) 修改代码,使类MyInternalClass成为内部类:

    internal class MyInternalClass 
    { 
    }

      (6) 编译项目【注意这个项目没有入口点,所以不能像通常那样运行它——可以选择“生成 ➪ 生成解决方案”(Build ➪ Build Solution)菜单项来生成它】 。

      (7) 在Chapter09目录中创建一个新的控制台应用程序项目Ch09Ex02。

      (8) 选择“项目 ➪ 添加引用”(Project ➪ Add Reference)菜单项,或者在“解决方案资源管理器”(Solution Explorer)窗口中右击“引用”(References),选择相同的选项。

      (9) 单击 Browse 按钮,导航到 Chapter09Chapter09Ch09ClassLibinDebug,双击Ch09ClassLib.dll。

      (10) 完成了上述操作后,检查引用是否已添加到“解决方案资源管理器”(Solution Explorer)窗口中,如图9-11所示。

      (12) 修改Program.cs中的代码,如下所示:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Ch09ClassLib;
    
    namespace Ch09Ex02
    {
        class Program
        {
            static void Main(string[] args)
            {
                MyExternalClass myObj = new MyExternalClass();
                Console.WriteLine(myObj.ToString());
                Console.ReadKey();
            }
        }
    }

      (13) 运行应用程序,其结果如图9-13所示。

      

    示例的说明

      类库项目Ch09ClassLib包含两个类MyExternalClass(可公开访问)和MyInternalClass(只能在内部访问)。注意,默认情况下,会隐式将类确定为供内部访问,因为它没有访问修饰符。最好明确指定可访问性,因为这会使代码更容易理解,所以指令增加了internal关键字。

      note: 应用程序使用外部类库中定义的类时,可以把该应用程序称为库的客户应用程序。使用所定义的类的代码一般简称为客户代码。

      为了使用 Ch09ClassLib 中的类,在控制台应用程序中添加了对 Ch09ClassLib.dll 的引用。对于这个示例,该引用是指向类库的输出文件,也可以把这个文件复制到 Ch09Ex02 的本地位置上,以便继续开发类库,而不影响控制台应用程序。为了用新类库项目替换旧版本的程序集,只需用新生成的DLL文件覆盖旧文件即可

      在添加了引用后,就可以使用对象浏览器查看可用的类。因为类MyInternalClass是内部的,所以在对象浏览器窗口中看不到这个类——它不能由外部的项目访问。但是,MyExternalClass是可供访问的,这是我们在控制台应用程序中使用的类。

      利用外面程序集中的类的技术是使用 C#和.NET Framework 编程的关键。实际上,值用.NET Framework中的任何类,也就是在利用外部程序集中的类,因为它们的处理方式是相同的。

  • 相关阅读:
    Balanced Binary Tree
    Convert Sorted List to Binary Search Tree
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Validate Binary Search Tree
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Maximum Depth of Binary Tree
    如何把U盘的两个盘或者多个盘合成一个
    bugku 想蹭网先解开密码
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/4955476.html
Copyright © 2011-2022 走看看