Delphi中的静态类(Win32)

9 delphi oop

Delphi(Win32)中是否可以将整个类(不仅是类的函数)声明为静态?

小智 9

看起来用户搜索"类功能":

type
TSomeClass = class
class procedure MyFunction(...);
Run Code Online (Sandbox Code Playgroud)

这就像静态方法,所以,称之为:

TSomeClass.MyFunction(...);
Run Code Online (Sandbox Code Playgroud)


Lar*_*s D 6

我假设你的意思是静态类,如.net(而不是传统的Delphi/Native中的"静态") - 答案是否定的.

  • 也许这可以帮助您理解原因:静态类通常用于封装,其方式类似于Delphi中的单元. (2认同)
  • 我不想假设.你能否明白*****静态*是什么意思? (2认同)

Ron*_*Ron 6

我会使用一个抽象类(不要与类中的抽象方法混淆)来防止它被实例化而不是将构造函数降级为protected:

TMyClass = class abstract
public
  class procedure DoStuff; static;
end;
Run Code Online (Sandbox Code Playgroud)

这将强制执行单例模式并防止任何实例化时段.