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中的任何类,也就是在利用外部程序集中的类,因为它们的处理方式是相同的。

  • 相关阅读:
    托管资源和非托管资源
    无法启动IIS EXpress Web服务器
    SQL 最后一天及第一天
    amchart amline中配置文件amline_settings.xml文件中的配置说明
    SpringBoot添加拦截器
    Lombok插件
    SpringBoot配置访问静态资源
    SpringBoot自动配置原理
    yaml基本格式
    属性文件之SpringBoot注入
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/4955476.html
Copyright © 2011-2022 走看看