posts - 211,  comments - 582,  views - 53万
你可能知道在老ASP中,用VBScript还是可以写一些基于对象的程序的。但是你或许会对对象的生存期有一些疑惑。

构造函数 & 析构函数

class SomeClass
private sub class_initialize
end sub

private sub class_terminate
end sub
end class

通过在析构函数中打印一个字符串获得了对象生存期的确切印证

Set SomeObject = Nothing

这样做的意义在于把一个绑定到了一个对象上的名称SomeObject从这个对象中解脱出来,成为一个未绑定的名称。但是并不一定意为着被绑定的对象会被释放。如果

Set SomeObject1 = new CSomeClass
Set SomeObject2 = SomeObject1
Set SomeObject1 = nothing

这样就不会析构对象。因为仍然有SomeObject2绑定到了对象上,也就是说两个名称其实本来绑定到的是同一个对象。

页面结束

没有人工释放的对象会在页面执行结束的时候自动释放

局部对象

在Sub和Function中生成的对象,如果不是作为返回值返回了,而且返回值用名称继续绑定了,都会在过程结束的时候自动释放

posted on   taowen  阅读(638)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示