对象,你可以调用dispose()函数,虽然C#为它提供了的有效的结构,但是它仍然不象堆栈那样简单。 在新一代的语言(以前是C++/CLI),你在哪里建立对象不依赖于你建立对象的种类,你可以堆栈中管理对象,它有确定的解析,但它越界时将被清除,如果你愿意你可以在管理堆里建立对象。 这种变化带来其它的结果,其中最深远的是你可以把不同的对象放在摸板中或者可以把它看成其它类的成员变量,你可以得到完整的C++生存时间周期,而不是仅仅是把它分配到相应的堆,然后等碎片收集来处理它。 解析和定稿 当你为其它语言写了碎片收集对象是,你是否为它写了解析函数?当你使用C++,你可以在堆栈构造对象,解析函数将运行当它越界时,什么事情会发生当其他C#或VB程序调用这个对象,运行时仅从简单的方式去处理,它是用dispose()来解析,任何一个C++/CLI对象都有一个可以任意调用的解析函数。 假如你在C#或VB中有dispose()的类,你可能已经写了一个定论,C++/CLI也有简便的语法为定论,就象Foo的解析是~Foo,Foo的定论是!Foo(~是比特的not,!是逻辑的not,它们都是提醒是和构造函数对立的), Finalizer将运行当在管理堆中建立而不被调用,确信它所页码:[1] [2] [3] [4] [5] [6] [7] 第4页、共7页 |