《NET 语言教学课件.ppt》由会员分享,可在线阅读,更多相关《NET 语言教学课件.ppt(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、.NET 语言,C+ with Managed Extensions,C+ with Managed Extensions,微软不能单方面修改C+微软为C+定义了一套受控扩充件(Managed Extensions)Managed C+定义了一些新关键字_gc:指出某个数据类型受垃圾回收机制管制。_value:指出某个数据类型不受垃圾回收机制管制。 _interface:定义一个 CTS 接口类型。_box:将 CTS 值类型转换成引用类型。_unbox:将装箱的 CTS 值类型转回其原来形式。_delegate:定义一个 CTS 委派类型。,Managed C+程序样例,例1. 用 C+ 托
2、管扩展编写的 Hello World (HelloVC.cpp) #using / Allow easy reference to the System namespace classes.using namespace System;/ The global function, main, is the applications entry point.void main() / Write text to the console. Console:WriteLine(SHello World using Managed Extensions for C+!);,Managed C+程序样例
3、,用 C+编写托管目标代码,要求原程序中包含#using 编译时加clr选项。在 C+ 托管扩展中,#using 指令与 #import 指令类似,用于合并类型库中的信息。#using与 #include 指令有区别,#include 用于合并源代码而不是预生成库。为将命名空间导入到程序中(换言之,为便于引用 System 对象而不必完全限定其路径),还需要加上下面这条语句:using namespace System;,Managed C+程序样例,在 C+ 托管扩展中,Console:WriteLine 中需要有双冒号来表示范围。双冒号用于分隔命名空间和类名称以及类名称和静态方法。字符串前
4、面的 S 通知编译器将其编译为 System:String*,这在托管代码中的性能要好于 C+ 字符串。 使用以下命令行指令来编译此程序: cl.exe /clr HelloVC.cpp clr 开关,为公共语言运行库编译,它按照运行库的要求告知编译器创建托管代码。最后,运行结果可执行程序将产生以下输出:Hello World using Managed Extensions for C+!,Managed C+程序样例,例2/ A Managed C+ example #using _gc _interface IMath int Factorial(int f); double Squar
5、eRoot(double s); ;,Managed C+程序样例,_gc class Compute : public IMath public: int Factorial(int f) int i; int result = 1; for (i=2; iFactorial(v);System:Console:WriteLine( Square root of 0 : 1:f4, _box(v), _box(c-SquareRoot(v); ,Managed C+程序样例,Managed C+要求装箱必须显示进行。Managed C+代码和UnManaged C+代码可共存于同一个进程中。Managed C+对CLR提供了完整的支持。C+是VS.NET中唯一能直接编译为本机代码的语言。,