技術交流,dh講解.
哈哈,好久沒有寫這個系列了.今天在看vcl源**的時候,看見了這個.
還是宣告一下這個是在d7以後的版本才有的.謝謝,不要噴我!
當我們想給乙個類增加乙個方法或者成員變數,但是這個類又被很多單元引用了,我們直接去該這個類,肯定是很不明智的,怎麼辦?
對了,物件導向的話,我們可以繼承一下不就ok了,的確可以.但是如果結構體呢?其實這個關鍵更像是為結構體準備的
不過我這裡想說乙個helper關鍵字的用法.
類助手 可以擴充套件乙個類但是不用繼承,而且在uml中是沒有的.
簡單的語法:
type來個簡單的例子吧.助手類名 = class helper [(基類列表)] for 被擴充套件的類名
成員變數列表
end;
我們可以看到很簡單,就是class helper.當然這裡我得說一下了,record也是可以的.誰叫record的外號叫做小類.
我們對乙個類可以定義多個助手類,但是擴充套件原類特定處**的助手類只能有0個或者1個.
type
tmyclass=class
proceduremyproc;
functionmyfunc: integer;
end;
.. .
proceduretmyclass.myproc;
var
x: integer;
begin
x:= myfunc;
end;
functiontmyclass.myfunc: integer;
begin
.. .
end;
接下來就是它的助手類了.
type
tmyclasshelper=classhelperfortmyclass
procedurehelloworld;
functionmyfunc: integer;
end;
.. .
proceduretmyclasshelper.helloworld; //新增的新方法
begin
writeln(self.classname);
end;
functiontmyclasshelper.myfunc: integer; //覆蓋原方法
begin
.. .
end;
使用:var
x: tmyclass;
begin
x:= tmyclass.create;
x.myproc;
// 呼叫tmyclass.myproc
x.helloworld;
// 呼叫 tmyclasshelper.helloworld
x.myfunc;
// 呼叫tmyclasshelper.myfunc
end.
就是這麼簡單,希望大家能用到.
今天就講到這裡,我是dh;
OC新語法總結
1.方法與順序無關 2.列舉繫結資料型別 enum typedef nsuinteger language 3.屬性不用寫 synthesize 4.語法簡化 4.1 nsnumber nsnumber value value 12345 value 123.45f value 123.45 val...
markdown 最新語法
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...
七 新語法補充
新語法 示例等價於 說明 data 1 data text abcde 2 loop at itab into data wa endloop.1 data text type string.text abcde 2 data wa like line of itab.loop at itab in...