100162747.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 151 行 · 第 1/2 页

HTM
151
字号
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; BORDER-TOP: medium none; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 1.4pt; BORDER-LEFT: medium none; WIDTH: 99.2pt; PADDING-TOP: 1.4pt; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="132">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">/t:module</span></p>
            </td>
            <td style="BORDER-RIGHT: medium none; PADDING-RIGHT: 9.9pt; BORDER-TOP: medium none; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 1.4pt; BORDER-LEFT: medium none; WIDTH: 337.2pt; PADDING-TOP: 1.4pt; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="450">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span style="FONT-FAMILY: 宋体">没有清单的组件</span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; BORDER-TOP: medium none; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 1.4pt; BORDER-LEFT: medium none; WIDTH: 99.2pt; PADDING-TOP: 1.4pt; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="132">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">/t:winexe</span></p>
            </td>
            <td style="BORDER-RIGHT: medium none; PADDING-RIGHT: 9.9pt; BORDER-TOP: medium none; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 1.4pt; BORDER-LEFT: medium none; WIDTH: 337.2pt; PADDING-TOP: 1.4pt; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="450">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 宋体">应用程序</span><span lang="EN-US"> (</span><span style="FONT-FAMILY: 宋体">没有控制台窗口</span><span lang="EN-US">)</span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">如果想得到一个可由</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">运行库加载的非可执行文件</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">例如</span><span lang="EN-US">DLL)</span><span style="FONT-FAMILY: 宋体">,就必须把它编译为一个库。如果把</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 宋体">文件编译为一个模块,就不会创建任何程序集。虽然模块不能由运行库加载,但可以使用</span><span lang="EN-US">/addmodule</span><span style="FONT-FAMILY: 宋体">选项编译为另一个清单。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">另一个需要注意的选项是</span><span lang="EN-US">/out</span><span style="FONT-FAMILY: 宋体">,该选项允许用户指定由编译器生成的输出文件名。如果没有指定</span><span lang="EN-US">/out</span><span style="FONT-FAMILY: 宋体">选项,编译器就会使用输入的</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 宋体">文件名,加上根据目标类型的扩展名来建立输出文件名</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">例如</span><span lang="EN-US">.exe</span><span style="FONT-FAMILY: 宋体">表示</span><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 宋体">或控制台应用程序,</span><span lang="EN-US">.dll</span><span style="FONT-FAMILY: 宋体">表示类库</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。注意</span><span lang="EN-US">/out</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">/t(</span><span style="FONT-FAMILY: 宋体">或</span><span lang="EN-US">/target)</span><span style="FONT-FAMILY: 宋体">选项必须放在要编译的文件名前面。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">默认状态下,如果在未引用的程序集中引用类型,可以使用</span><span lang="EN-US">/reference</span><span style="FONT-FAMILY: 宋体">或</span><span lang="EN-US">/r</span><span style="FONT-FAMILY: 宋体">选项,后跟程序集的路径和文件名。下面的例子说明了如何编译类库,并在另一个程序集中引用这个库。它包含两个文件:</span></p>
<p class="1" style="MARGIN-LEFT: 37.55pt; TEXT-INDENT: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="FONT-FAMILY: 宋体">类库</span></p>
<p class="1" style="MARGIN-LEFT: 37.55pt; TEXT-INDENT: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="FONT-FAMILY: 宋体">控制台应用程序,该应用程序调用库中的一个类。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">第一个文件</span><span lang="EN-US">MathLibrary.cs</span><span style="FONT-FAMILY: 宋体">包含</span><span lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">的代码,为了简单起见,它只包含一个类</span><span lang="EN-US">Math</span><span style="FONT-FAMILY: 宋体">和一个方法,该方法把两个</span><span lang="EN-US">int</span><span style="FONT-FAMILY: 宋体">类型的数据加在一起:</span></p>
<p class="2" style="MARGIN: 8.15pt 0cm 0pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">namespace Wrox.ProCSharp.Basics</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public class MathLib</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Add(int x, int y)</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return x + y;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; }</span></p>
<p class="2" style="MARGIN: 0cm 0cm 8.15pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">}</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">使用下述命令把这个</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 宋体">文件编译为</span><span lang="EN-US">. NET DLL</span><span style="FONT-FAMILY: 宋体">:</span></p>
<p class="a6" style="MARGIN: 8.15pt 0cm 8.15pt 21.45pt; TEXT-INDENT: 18.45pt"><strong><span lang="EN-US">csc /t:library MathLibrary.cs</span></strong></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">控制台应用程序</span><span lang="EN-US">MathClient.cs</span><span style="FONT-FAMILY: 宋体">将简单地实例化这个对象,调用其</span><span lang="EN-US">Add</span><span style="FONT-FAMILY: 宋体">方法,在控制台窗口中显示结果:</span></p>
<p class="2" style="MARGIN: 8.15pt 0cm 0pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">using System;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">namespace Wrox.ProCSharp.Basics</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; class Client</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void Main()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MathLib mathObj = new MathLib();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(mathObj.Add(7,8));</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; }</span></p>
<p class="2" style="MARGIN: 0cm 0cm 8.15pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">}</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">使用</span><span lang="EN-US">/r</span><span style="FONT-FAMILY: 宋体">选项编译这个文件,使之指向新编译的</span><span lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">:</span></p>
<p class="a6" style="MARGIN: 8.15pt 0cm 8.15pt 21.45pt; TEXT-INDENT: 18.45pt"><strong><span lang="EN-US">csc MathClient.cs /r:MathLibrary.dll</span></strong></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">当然,下面就可以像往常一样运行它了:在命令提示符上输入</span><span lang="EN-US">MathClient</span><span style="FONT-FAMILY: 宋体">,其结果是显示数字</span><span lang="EN-US">15</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.5pt">&mdash;&mdash;</span><span style="LETTER-SPACING: -0.5pt"> </span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.5pt">进行</span><span style="FONT-FAMILY: 宋体">加运算的结果。</span></p></div>
                <!-- page -->
                <div class="page" style="text-align: center">
                    <a href="100162746.htm">上一页</a>&nbsp;&nbsp;&nbsp;<a href="index.html">首页</a>&nbsp;&nbsp;&nbsp;<a href="100162748.htm">下一页</a>
                </div>
                <div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100162747.htm'><font color='red'>2.10  有关编译C#文件的更多内容</font></a></h1>
                        <div id="divRealteNod2" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100162744.htm'>2.7  数组</a></div><div style='float:right;width:49%'>·<a href='100162745.htm'>2.8  命名空间</a></div><div style='float:left;width:49%'>·<a href='100162746.htm'>2.9  Main()方法</a></div><div style='float:right;width:49%'>·<a href='100162748.htm'>2.11  控制台I/O</a></div><div style='float:left;width:49%'>·<a href='100162749.htm'>2.12  使用注释</a></div><div style='float:right;width:49%'>·<a href='100162750.htm'>2.13  C#预处理器指令</a></div></div>
                    </div>
                </div>
                </div>
        </div>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?