gpt4 book ai didi

function - 当前类方法名称为字符串

转载 作者:行者123 更新时间:2023-12-03 15:58:11 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以使用 Object Pascal 来获取当前正在执行的方法的名称。

procedure SomeClass.SomeMethod(SomeArgs...);
begin
{ This should print 'This method name is: SomeMethod' }
WriteLn('This method name is: ' + ???);
end;

看起来 TObject 的内容与我在描述中需要的内容类似,但我无法使其工作。

 public class function TObject.MethodName(address: pointer): shortstring;

这是我应该走的路吗?
如果我尝试 MethodName(self),它总是返回一个空字符串。
如何获取类中方法的指针?

最佳答案

我不了解经典的 Object Pascal(Apple 的),但了解 Delphi/FPC:

D2010之前:如果方法被发布,则只有RTTI,在其他情况下过程名称被优化掉。单位typinfo是你的 friend ,iirc可以通过使用typeinfo(@TSomeclass.Somemethod)来获取typeinfo。

D2010:有选项可以生成更多 RTTI 信息。参见例如RTTI information for method pointer

Free Pascal:2.6.x 及更低版本,与 D2010 之前一样,2.7.x 与 D2010 一样,但仍在开发中。

关于function - 当前类方法名称为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20815952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com