zoukankan      html  css  js  c++  java
  • 《C#与.NET3.5高级程序设计(第4版)》笔记2

       

    第二章 构建C#应用程序

    构建.NET应用程序有许多工具可以选择,从简单的c#命令行编辑器CSC.EXE与记事本的配合使用,到轻量级编辑器(textpad和notepad++),另外开源的IDE开发工具sharpdevelop,再到微软的商用.NET开发工具,VISUAL STUDIO 2008等。

    2.1 CSC命令行编译器

    对于许多程序员来说,一开始就使用VS.NET作为开发平台,没有或很少利用命令行编译器,其实,所有的开发平台,最终都是要调用命令行编译器的,只不过这一过程对用户来说是透明的,然而,理解命令行编译方式,对于一个进阶为高级程序员来说,是必不可少的!

    C#语言使用csc.exe,vb.NET用vbc.exe进行编译,这里只以csc为例。

    在命令行编译器中,支持标志的所写,如 csc /out 和csc/t 是一个意思。另外,访问标志或选项,可以用“-”或者“/” 。

    为了编译一个源代码(用记事本编辑即可),需要用CSC命令。

    一般需要两类参数:

    •  
         
    • 输入输出参数:

      •  

    输入当然就是需要编译的源文件名啦,比如*.CS。若有多个文件需要编译,则一个个列出来即可,若编译所有*.CS,只需用通配符即可,如csc *.cs

    输出参数就是需要编译为什么文件,可选的是exe和dll或模块。可以查看具体参数。

    这里要说明的是,dll是动态链接库,不可以直接运行,必须寄宿到其他可执行程序中运行。

    exe文件时可以直接运行的。dll可以寄宿到exe中。区别在于exe文件要有入口点哦。

    默认的是exe文件,但是如果没有入口点,将提示出错。有入口点的源代码可以编译为dll或者exe。

    在将多个源代码编译时,如csc *.cs,则会编译为一个文件(可选的dll或者exe)。

    •  
      •  
    • 引用参数:

    也就是编译的源代码如果引用了其他程序集中的类,则需要加入引用选项,从而让编译器知道如何去找到程序集,加以引用,这相当于IDE中使用项目-引用中的程序集。

    包括了引用单个和多个程序集(分号隔开)。

    另外,为了减轻录入负担,也可以自己建立一个响应文件(*.rsp),这里记录了编译期间要用到的所有指令。系统也提供了一个默认响应文件(c#的默认csc.rsp),里面是一些常用的引用程序集,当用csc编译时,这个文件自动被引用。

    注:响应文件具有累加性,后面被加载的响应文件若与前面的冲突,将会覆盖相应的代码。

    注:引用了没有使用的程序集,编译器将忽略它,因此没必要担心引用过多没有的程序集影响性能,当然,作为规范,没必要引用没有使用的程序集。(所以可以理解引用了许多无用的程序集和using了许多命名空间,不影响性能)

    2.2 其它编译器

    为了提高开发和编译的工作效率,提供了许多开发平台,他们实质上还是利用命令行编译器进行后台工作的,只是无需开发人员手动完成,形成了自动化工作流程。

    如textpad(收费,但是可以无限制使用),notepad++(免费),sharpdevelop(免费),visual c# express(速成版,免费),visual studio 2008(商业版,收费),这里具体使用就不再多说了。主要说说vs2008的一些实用功能:

    (1)目前的2008版本支持建立项目时选择框架的版本(2.0/3.0/3.5),这个功能不错,终于不需要在一台机子上装vs的多个开发平台了。

    (2)2008提供了一个重构功能,这个功能非常的实用,可以改善现有代码,将之前许多手工劳动自动化了。

    (3)代码扩展和围绕技术。提供了插入预制的c#代码块的能力,可用的代码扩展数量是惊人的!

    (4)可视化的类设计器(express中没有这个功能)。新建一个类图文件之后,就可以利用工具箱中的工具,拖放各种类、接口等类型,并增加删除成员,表示各种类型的关系(继承等),配合实用class details窗口和class designer toolbox,加快了设计速度。

    (5)对象测试平台。提供了可视工具(OTB,对象测试平台),可以快速创建一个类的实例并调用其成员,无需运行整个程序(个人觉得这个功能非常实用,好像只有Team版的VS才有)。如果需要测试一个具体方法而不想逐行执行其他无关的代码,这个很有用。你总不期望为了测试一个相对独立的模块,而让这个程序编译好几十秒吧,深受其害啊!

    目前从书中看,这一操作只需要一步,直接在类视图下的OTB中中右击这个类实例,选择-调用方法,然后选择某个方法,即可执行。实际上,之前还需要一步,才能出现OTB窗口,就是在类视图中右击,选择创建实例,然后输入一个实例名字,这样,下面才会出现OTB窗口,才能调用方法。如下图所示:

      

  • 相关阅读:
    BZOJ 4445 [Scoi2015]小凸想跑步:半平面交
    BZOJ 3931 [CQOI2015]网络吞吐量:最大流【拆点】
    BZOJ 3698 XWW的难题:有上下界的最大流
    AtCoder ARC097C Sorted and Sorted:dp
    BZOJ 1835 [ZJOI2010]base 基站选址:线段树优化dp
    BZOJ 3329 Xorequ:数位dp + 矩阵快速幂
    BZOJ 1492 [NOI2007]货币兑换Cash:斜率优化dp + cdq分治
    BZOJ 4726 [POI2017]Sabota?:树形dp
    BZOJ 1185 [HNOI2007]最小矩形覆盖:凸包 + 旋转卡壳
    存一些东西
  • 原文地址:https://www.cnblogs.com/lerit/p/1663513.html
Copyright © 2011-2022 走看看