zoukankan      html  css  js  c++  java
  • 模块封装与程序集

    一.什么是模块封装

    模块封装最直接的形式是类库,但是类库不是模块封装的唯一形式,我们将实现某些职能的代码以类库的形式封装起来,就可以达到模块封装的目的,我们以设计一个计算器为例:

    CalDll是实现计算的类库

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace CalDll
    {
        public class Calculator
        {
            public int Add(int a, int b)
            {
                return a + b;
            }
            public double Add(double a, double b)
            {
                return a + b;
            }
        }
    }

    在winform窗体中,我们调用实现计算的类库,达到计算的目的:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using CalDll;
    
    namespace CalDemo
    {
        public partial class FrmMain : Form
        {
            public FrmMain()
            {
                InitializeComponent();
            }
    
            private void btnCal_Click(object sender, EventArgs e)
            {
                int num1 = Convert.ToInt32(this.txtNum1.Text.Trim());
                int num2 = Convert.ToInt32(this.txtNum2.Text.Trim());
    
                int result = new Calculator().Add(num1, num2);
                this.lblResult.Text = result.ToString();
            }
        }
    }

    程序运行结果如下:

    二.什么是程序集

    程序集是应用程序的部署单元,.NET应用程序包含一个或多个程序集。通常扩展名是EXE或DLL 的.NET可执行程序称为程序集。千万不要将程序集简单的理解为Dll文件,这种想法是错误的。

    下图表示的程序集的逻辑架构:

    程序集的相关信息可以在Properties 中的AssemblyInfo.CS中修改:

    using System.Reflection;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    
    // 有关程序集的常规信息通过以下
    // 特性集控制。更改这些特性值可修改
    // 与程序集关联的信息。
    [assembly: AssemblyTitle("CalDemo")] 
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("")]
    [assembly: AssemblyProduct("")]
    [assembly: AssemblyCopyright("Copyright @ ")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    
    // 将 ComVisible 设置为 false 使此程序集中的类型
    // 对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,
    // 则将该类型上的 ComVisible 特性设置为 true。
    [assembly: ComVisible(false)]
    
    // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
    [assembly: Guid("b9d17b02-0550-4197-b5d5-92d40c4d4254")]
    
    // 程序集的版本信息由下面四个值组成: 
    //
    //      主版本
    //      次版本 
    //      生成号
    //      修订号
    //
    // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
    // 方法是按如下所示使用“*”: 
    // [assembly: AssemblyVersion("1.0.*")]
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
  • 相关阅读:
    HttpClient——POST请求方法
    【Httpclient+TestNG】接口自动化测试——GET请求示例
    一些杂碎的小知识点
    搭建linux服务器的环境
    javase(1)
    事务处理
    数据库优化
    表单重复提交--->使用Session防止表单重复提交
    两个小程序
    java基础小知识(2)
  • 原文地址:https://www.cnblogs.com/Artist007/p/11014264.html
Copyright © 2011-2022 走看看