100162731.htm

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

HTM
106
字号
<p class="2" style="MARGIN: 8.15pt 0cm 0pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">class MyClass</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></p>
<p class="2" style="MARGIN: 8.15pt 0cm 0pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">__gc class MyClass</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">VB.NET</span><span style="FONT-FAMILY: 宋体">编写类一样。实际上,托管</span><span lang="EN-US">C++</span><span style="FONT-FAMILY: 宋体">比</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 宋体">更优越的一点是可以在托管</span><span lang="EN-US">C++</span><span style="FONT-FAMILY: 宋体">代码中调用非托管</span><span lang="EN-US">C++</span><span style="FONT-FAMILY: 宋体">类,而不必采用</span><span lang="EN-US">COM</span><span style="FONT-FAMILY: 宋体">交互功能。</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">)</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 class="codeintext-PRODUCTION"><span lang="EN-US" style="FONT-FAMILY: 'Times New Roman'">__gc</span></span><span class="codeintext-PRODUCTION"><span style="FONT-FAMILY: 宋体">关键字</span></span><span class="codeintext-PRODUCTION"><span lang="EN-US" style="FONT-FAMILY: 'Times New Roman'">)</span></span><span style="FONT-FAMILY: 宋体">。</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">C++</span><span style="FONT-FAMILY: 宋体">编译器不能生成可以通过</span><span lang="EN-US">CLR</span><span style="FONT-FAMILY: 宋体">内存类型安全测试的代码。如果</span><span lang="EN-US">CLR</span><span style="FONT-FAMILY: 宋体">把代码标识为内存类型安全是非常重要的,就需要用其他一些语言编写源代码,例如</span><span lang="EN-US">C# </span><span style="FONT-FAMILY: 宋体">或</span><span lang="EN-US">VB.NET</span><span style="FONT-FAMILY: 宋体">。</span></p>
<p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: Arial">Visual </span><span lang="EN-US" style="FONT-FAMILY: Arial">J#</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">。在</span><span lang="EN-US">.NET Framework 1.1</span><span style="FONT-FAMILY: 宋体">版本推出之前,用户必须下载相应的软件,才能使用</span><span lang="EN-US">J#</span><span style="FONT-FAMILY: 宋体">。现在</span><span lang="EN-US">J#</span><span style="FONT-FAMILY: 宋体">语言内置于</span><span lang="EN-US">.NET Framework</span><span style="FONT-FAMILY: 宋体">中。因此,</span><span lang="EN-US">J#</span><span style="FONT-FAMILY: 宋体">用户可以利用</span><span lang="EN-US" style="LETTER-SPACING: -0.1pt">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.1pt">的所有常见特性。</span><span lang="EN-US">Microsoft</span><span style="FONT-FAMILY: 宋体">希望大多数</span><span lang="EN-US">J++</span><span style="FONT-FAMILY: 宋体">用户认为他们在使用</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">时,将很容易使用</span><span lang="EN-US">J#</span><span style="FONT-FAMILY: 宋体">。</span><span lang="EN-US">J#</span><span style="FONT-FAMILY: 宋体">不使用</span><span lang="EN-US">Java</span><span style="FONT-FAMILY: 宋体">运行库,而是使用与其他</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">兼容语言一样的基类库。这说明,与</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">VB.NET</span><span style="FONT-FAMILY: 宋体">一样,可以使用</span><span lang="EN-US">J#</span><span style="FONT-FAMILY: 宋体">创建</span><span lang="EN-US">ASP.NET Web</span><span style="FONT-FAMILY: 宋体">应用程序、</span><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 宋体">窗体、</span><span lang="EN-US">XML Web</span><span style="FONT-FAMILY: 宋体">服务和其他应用程序。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 黑体">脚本语言</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">的推出,一般认为它们的重要性在降低。另一方面,</span><span lang="EN-US">JScript</span><span style="FONT-FAMILY: 宋体">升级到</span><span lang="EN-US">JScript.NET</span><span style="FONT-FAMILY: 宋体">。</span><span lang="EN-US">ASP.NET</span><span style="FONT-FAMILY: 宋体">页面可以用</span><span lang="EN-US">JScript.NET</span><span style="FONT-FAMILY: 宋体">编写,现在可以把</span><span lang="EN-US">JScript.NET</span><span style="FONT-FAMILY: 宋体">当作一种编译语言来运行,而不是解释性的语言,也可以编写输入量比较大的</span><span lang="EN-US">JScript.NET</span><span style="FONT-FAMILY: 宋体">代码。有了</span><span lang="EN-US">ASP.NET</span><span style="FONT-FAMILY: 宋体">后,就没有必要在服务器端的</span><span lang="EN-US">Web</span><span style="FONT-FAMILY: 宋体">页面上使用脚本语言了,但</span><span lang="EN-US">VBA</span><span style="FONT-FAMILY: 宋体">仍用作</span><span lang="EN-US">Office</span><span style="FONT-FAMILY: 宋体">文档和</span><span lang="EN-US">Visual Studio</span><span style="FONT-FAMILY: 宋体">宏语言。</span></p>
<p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: Arial">COM</span><span style="FONT-FAMILY: 黑体">和</span><span lang="EN-US" style="FONT-FAMILY: Arial">COM+</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">从技术上讲,</span><span lang="EN-US">COM </span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US"> COM+</span><span style="FONT-FAMILY: 宋体">并不是面向</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">的技术,因为基于它们的组件不能编译为</span><span lang="EN-US">IL(</span><span style="FONT-FAMILY: 宋体">但如果原来的</span><span lang="EN-US">COM</span><span style="FONT-FAMILY: 宋体">组件是用</span><span lang="EN-US">C++</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">COM+</span><span style="FONT-FAMILY: 宋体">仍然是一个重要的工具,因为其特性没有在</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">中完全实现。另外,</span><span lang="EN-US">COM</span><span style="FONT-FAMILY: 宋体">组件仍可以使用<span style="LETTER-SPACING: -0.5pt">&mdash;&mdash;</span></span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">组合了</span><span lang="EN-US">COM</span><span style="FONT-FAMILY: 宋体">的互操作性,从而使托管代码可以调用</span><span lang="EN-US">COM</span><span style="FONT-FAMILY: 宋体">组件,</span><span lang="EN-US">COM</span><span style="FONT-FAMILY: 宋体">组件也可以调用托管代码</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">见第</span><span lang="EN-US">29</span><span style="FONT-FAMILY: 宋体">章</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。在大多数情况中,把新组件编写为</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">组件,其多数目的是为了比较方便,因为这样可以利用</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">基类和托管代码的其他优点。</span></p></div>
                <!-- page -->
                <div class="page" style="text-align: center">
                    <a href="100162730.htm">上一页</a>&nbsp;&nbsp;&nbsp;<a href="index.html">首页</a>&nbsp;&nbsp;&nbsp;<a href="100162732.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='100162731.htm'><font color='red'>1.2  公共语言运行库</font></a></h1>
                        <div id="divRealteNod2" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100162730.htm'>1.1  C#与.NET的关系</a></div><div style='float:right;width:49%'>·<a href='100162732.htm'>1.3  中间语言</a></div><div style='float:left;width:49%'>·<a href='100162733.htm'>1.4  程序集</a></div><div style='float:right;width:49%'>·<a href='100162734.htm'>1.5  .NET Framework类</a></div><div style='float:left;width:49%'>·<a href='100162735.htm'>1.6  用C#创建.NET应用程序</a></div><div style='float:right;width:49%'>·<a href='100162736.htm'>1.7  C#在.NET企业体系结构中的作用</a></div></div>
                    </div>
                </div>
                </div>
        </div>
</body>
</html>

⌨️ 快捷键说明

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