1

的VBScript保证GC将每行后运行的名称,因此,如果您创建一个对象,不保持一个参考,它的析构函数将在该行的末尾被调用。这允许你做一些有趣的事情,其中​​一个是模拟可选参数:寻找一个设计模式

with foo(mandatoryArg) 
    .optArg = 42 
end 

另一个是让一个方便建设者语法:

with Schema.define("Foo") 
    .attr "name", String 

    with .attr "key", String 
     .lengthEquals(10) 
    end 
end 

在这个例子中,定义和attR回报完成析构函数中的模式和属性定义的对象。

我叫了临时对象的ephemeron,但我想知道是否有这样的结构预先存在的期限。任何人在别处见过?

回答

1

根据Builder pattern in wikipedia这是建设者或更具体的混凝土生产商。在实践中,这些对象通常是短暂的。生成器模式有几个组件,包括导演等。但是,这个短命的对象,你称为ephemeron,似乎恰恰是建设者的对象。

0

你肯定使用生成器模式。虽然GC的滥用是新的。您正在构建的语法类型的更一般名称是fluent interface

你可以实现在C#中的“使用”语法类似的东西,但在实践中人们使用这个lambda表达式,这是更清晰。