可以说我为TStringList编写了助手
TslHelper = class helper for TStringList
function DoSth: boolean;
end;
然后,我将这个助手(定义了助手的单元)包含在我要使用的单元中。
在调试期间,我按了Ctrl + F7,我想评估一下:
someStringList.DoSth
我无法正常工作。可能吗?
最佳答案
类助手将新方法引入当前范围。如果类帮助程序不在范围内,则即使其帮助的类处于有效状态,其方法也不会生效。因此,使其生效的第一步是确保TslHelper
是将在程序当前位置生效的类帮助程序。
如果您满足了该要求,但仍然无法使用,则调试器可能根本无法识别类助手。无论如何,它们都是一个小技巧,所以如果调试器无法识别它们,我也不会感到惊讶。最终,班级助手只是语法糖。上面的类帮助器可以像独立函数一样容易地编写,如下所示:
function TStringList_DoSth(SL: TStringList): Boolean;
使用您当前的方法实现编写该函数,然后使用该函数实现您的类助手:
function TslHelper.DoSth: Boolean;
begin
TStringList_DoSth(Self);
end;
您可以继续在常规代码中调用class-helper方法,但可以使用调试器中的独立功能。