厉大无比 發表於 2020-12-5 11:25:00

delphi助手类

<p>delphi助手类</p>
<p>DELPHI2005及以上版本开始支持助手类。</p>
<p><strong>用途:</strong>当我们想给一个类增加一个方法或者成员变量,但是这个类又被很多单元引用了,我们直接去该这个类,肯定是很不明智的,怎么办?</p>
<p>如果是类,继承一下就OK了。但是如果是结构体呢?其实这个关键更像是为结构体准备的。</p>
<p><strong>限制:</strong>类别助手最明显的限制,就是我们每次对一个类别只能使用一个助手(保证其唯一性)。</p>
<p>如果编译程序发现了有两个助手类别,第二个助手类别就会把第一个给取代掉。所以也没有任何方法可以对类别助手进行连锁使用,也就是说我们不能对类别助手再制作另一个类别助手。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">Type
TMyClass= Class
Procedure MyProc;
Function MyFunc: Integer;
End;
.. .
Procedure TMyClass.MyProc;
Var
X: Integer;
Begin
X:= MyFunc;
End;
Function TMyClass.MyFunc: Integer;
Begin
.. .
End;
接下来就是它的助手类了.
Type
TMyClassHelper= Class Helper For TMyClass
Procedure HelloWorld;
Function MyFunc: Integer;
End;
.. .
Procedure TMyClassHelper.HelloWorld; //添加的新方法
Begin
Writeln(Self.ClassName);
End;
Function TMyClassHelper.MyFunc: Integer; //覆盖原方法
Begin
.. .
End;
使用:
Var
X: TMyClass;
Begin
X:= TMyClass.Create;
X.MyProc; // 调用TMyClass.MyProc
X.HelloWorld; // 调用 TMyClassHelper.HelloWorld
X.MyFunc; // 调用TMyClassHelper.MyFunc
End.
</pre>
</div>
<p>  </p>

</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/14088847.html</p><br><br>
来源:https://www.cnblogs.com/hnxxcxg/p/14088847.html
頁: [1]
查看完整版本: delphi助手类