可以说我为 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;
您可以继续在正常代码中调用类助手方法,但您可以回退到调试器中的独立函数。