为什么一个类需要一个空方法来调用它?

时间:2014-04-20 07:29:06

标签: delphi

我正在为Delphi评估现有的依赖注入库,并且由于其简单而确定了这个delphidicontainer - 它只需要一个unit file

然而,有一点我不明白 - 在底部this example file

initialization
//with those lines the linked will include the actual code for the services
TCSVDataService.Register;
TPaddedDataService.Register;

这些Register方法是空的,但是,如果我在初始化部分中注释掉这两行,DIContainer.Get('dataservice') as TDataService将会失败。

为什么呢?这些方法是什么?

1 个答案:

答案 0 :(得分:7)

Delphi编译器非常智能,在编译/链接代码时会尝试消除未使用的代码,因此从编译器的角度来看,示例中的实现类(例如TCSVDataService)是没有在程序中的任何地方使用,并将被删除,所以这些空方法调用是为了防止这种情况发生。