delphi 中 is 和 as 的功用有何不一樣?? |
答題得分者是:chih_kuan
|
scottie
一般會員 發表:1 回覆:0 積分:0 註冊:2007-01-27 發送簡訊給我 |
|
Coffee
版主 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
The answer is
if ObjectA "is" TClassB then doSomething [take] (ObjectA as TClassB).(ClassBProperty) when use that? judge yourself you should need a book to understand
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。 為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。 在引述到我的文時自然會儘量替各位想辦法,謝謝大家! |
mypigbaby
高階會員 發表:11 回覆:168 積分:155 註冊:2006-07-20 發送簡訊給我 |
|
chih_kuan
中階會員 發表:38 回覆:82 積分:54 註冊:2003-02-20 發送簡訊給我 |
is、as 差別在於
is 是用來"判斷"....白話的說..就是判斷是不是這種 Class Type?? as 是用來"轉型運算" .... 舉例來說.... TButton(Sender).caption := '123' (Send As TButton).caption := '123' 結果是一樣的... 不過......是建議最好是用....TButton(Sender).....這種方式啦... .........因為用 TButton(Sender)...若有錯時..會觸發一個 型別轉換的 Exception 而 (Sender As TButton) ...並不會..... 這樣講解....希望能解答您心中的疑惑.....
------
叔叔有練過,初學者不要學。 |
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
補充一下這兩者的差別是
TButton(Sender).caption := '123' // 直接轉, 不檢查是否可轉型 (Send As TButton).caption := '123' // As 是安全轉型, 在轉之前他會檢查 ===================引 用 chih_kuan 文 章=================== is、as? 差別在於 is?? 是用來"判斷"....白話的說..就是判斷是不是這種 Class Type?? as? 是用來"轉型運算" .... 舉例來說.... ??????????????????????? TButton(Sender).caption := '123'? ??????????????????????? (Send As TButton).caption := '123' ????? 結果是一樣的... ???? 不過......是建議最好是用....TButton(Sender).....這種方式啦... ???? .........因為用 TButton(Sender)...若有錯時..會觸發一個 型別轉換的 Exception? ??? 而? (Sender As TButton) ...並不會..... 這樣講解....希望能解答您心中的疑惑.....
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
chih_kuan
中階會員 發表:38 回覆:82 積分:54 註冊:2003-02-20 發送簡訊給我 |
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |