全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1258
推到 Plurk!
推到 Facebook!

一個觀念問題

 
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-07-17 11:11:16 IP:210.85.xxx.xxx 未訂閱
請問各位! 我常看到以下的設計方式 function TForm1.xxxxxx: integer var xxxx; xxxx; procedure xxxxxxxx; begin end; begin : : end; 1.在function中(或procedure), 又另外宣告一個 procedure(或function), 所代表的涵意是什麼?又在什麼情況下需要做如此的宣告定義? 2.這樣的執行效能是不是會比較好, 包括速度, 記憶配置, 穩定度等等 3.在其中的 procedure 是不是只有該fucntion可以call, 或者是在這個 form1上都可以call 我在很多書上查都沒有看到有人在說明這一項!
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-07-17 12:17:46 IP:202.145.xxx.xxx 未訂閱
引言: 1.在function中(或procedure), 又另外宣告一個 procedure(或function), 所 代表的涵意是什麼?又在什麼情況下需要做如此的宣告定義? 這個就跟變數有分區域跟全域是一樣道理...在這邊就等於是一個區域的PROCEDURE... 情況就是...你確定這個PROCEDURE只有在這個函數內有用到...否則... 大部份的情況是很少有用到這種方式啦... 2.這樣的執行效能是不是會比較好, 包括速度, 記憶配置, 穩定度等等 我是覺得差不多啦... 3.在其中的 procedure 是不是只有該fucntion可以call, 或者是在這個 form1上都可以call 只有在該FUNCTION才可以CALL
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-07-17 17:05:31 IP:210.85.xxx.xxx 未訂閱
引言: 1.在function中(或procedure), 又另外宣告一個 procedure(或function), 所 代表的涵意是什麼?又在什麼情況下需要做如此的宣告定義? [green] 這個就跟變數有分區域跟全域是一樣道理...在這邊就等於是一個區域的PROCEDURE... 情況就是...你確定這個PROCEDURE只有在這個函數內有用到...否則... 大部份的情況是很少有用到這種方式啦...
謝謝說明, 不過我仍有點不解, 如果只在這個function內限用, 那這樣寫法有什麼好處, 因為我看佷多的source 都是有用到這個方式, 那只是在codeing方便嗎? 那為何不把 procedure 掛在 private 上就好了! 不好意思, 吹毛求疵哦!
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-07-17 19:27:22 IP:61.229.xxx.xxx 未訂閱
很可能那個procedure只有這個function會call 如果這樣的話,就不要另外寫在外面,維護起來也比較容易。
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-07-17 19:32:13 IP:61.70.xxx.xxx 未訂閱
引言:
引言: 1.在function中(或procedure), 又另外宣告一個 procedure(或function), 所 代表的涵意是什麼?又在什麼情況下需要做如此的宣告定義? [green] 這個就跟變數有分區域跟全域是一樣道理...在這邊就等於是一個區域的PROCEDURE... 情況就是...你確定這個PROCEDURE只有在這個函數內有用到...否則... 大部份的情況是很少有用到這種方式啦...
謝謝說明, 不過我仍有點不解, 如果只在這個function內限用, 那這樣寫法有什麼好處, 因為我看佷多的source 都是有用到這個方式, 那只是在codeing方便嗎? 那為何不把 procedure 掛在 private 上就好了! 不好意思, 吹毛求疵哦!
我想是因為結構的簡潔...因為會用這種方式的...通常都是這個程序只有在這邊才有用的上...或者這個程序是因為某些情況特別去寫的...為了不和一些公用的函數混在一起... 這也要講到物件導向所用到的私有與公有的差別了...因為OO(物件導向)強調的是結構...整個物件就像是一個黑盒子...你只能看到人家開放的公共函數與方法...像一些私有的...你根本就看不到...也就是說...那一些私有的...你根本用不到...
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-07-17 22:10:54 IP:210.85.xxx.xxx 未訂閱
[/quote] 我想是因為結構的簡潔...因為會用這種方式的...通常都是這個程序只有在這邊才有用的上...或者這個程序是因為某些情況特別去寫的...為了不和一些公用的函數混在一起... 這也要講到物件導向所用到的私有與公有的差別了...因為OO(物件導向)強調的是結構...整個物件就像是一個黑盒子...你只能看到人家開放的公共函數與方法...像一些私有的...你根本就看不到...也就是說...那一些私有的...你根本用不到... [/quote] 非常感謝你的說明, 我大致了解了!
系統時間:2024-04-23 23:25:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!