Delphi中一个类为何必须配备一个看似无用的空方法以供调用?

2026-04-10 20:292阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计249个文字,预计阅读时间需要1分钟。

Delphi中一个类为何必须配备一个看似无用的空方法以供调用?

我在Delphi中评估现有的依赖注入库,由于它们的简洁性,我在Delphi Container上找到了归属。它只需要一个unit文件!但是,有一件事我不太明白——在这个示例文件底部:

initialization with those l

我正在为Delphi评估现有的依赖注入库,并且由于它的简单性而在 delphidicontainer上定居 – 它只需要一个 unit file!

但是,有一件事我不明白 – 在this example file底部:

Delphi中一个类为何必须配备一个看似无用的空方法以供调用?

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

这些Register方法是空的,但是,如果我在初始化部分注释掉这两行,DIContainer.Get(‘dataservice’)将作为TDataService失败.

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

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

本文共计249个文字,预计阅读时间需要1分钟。

Delphi中一个类为何必须配备一个看似无用的空方法以供调用?

我在Delphi中评估现有的依赖注入库,由于它们的简洁性,我在Delphi Container上找到了归属。它只需要一个unit文件!但是,有一件事我不太明白——在这个示例文件底部:

initialization with those l

我正在为Delphi评估现有的依赖注入库,并且由于它的简单性而在 delphidicontainer上定居 – 它只需要一个 unit file!

但是,有一件事我不明白 – 在this example file底部:

Delphi中一个类为何必须配备一个看似无用的空方法以供调用?

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

这些Register方法是空的,但是,如果我在初始化部分注释掉这两行,DIContainer.Get(‘dataservice’)将作为TDataService失败.

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

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