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">——</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> <a href="index.html">首页</a> <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 + -
显示快捷键?