2007年4月16日 星期一

Delphi 使程式碼簡潔的忠告

內容來源:http://www.delphiguys.com/rensheng/2007-2-11/ShiDaiMaJianJiDe-5-TiaoZhongGao_0.htm

一、Boolean值操作應該是直接的
if If_Love_Delphi then
Result:=True
else
Result:=False;
改成這樣寫比較好:
Result:= If_Love_Delphi;

二、避免使用 if/then/if ,而用and来代替
例1:
if If_Love_Delphi then
if If_Love_Linux then
TryKylix(Now);
改成這樣寫比較好:
if If_Love_Delphi and If_Love_Linux then
TryKylix(Now);
例2:
if If_Love_Delphi then
if If_Love_Linux then
Result:=True;
改成這樣寫比較好:
Result:= If_Love_Delphi and If_Love_Linux;

三、判斷boolean值時不需用"=True","=False"
if (If_Love_Delphi=True) and
(If_Love_Linux=False) then
DoNotTryLinux;
改成這樣寫比較好:
if If_Love_Delphi and
not If_Love_Linux then
DoNotTryLinux;

四、盡量不要用"+"來進行字串合併
ShowMessage('在下身高'+IntToStr(iHeight)+'米,体重'+IntToStr(iWeight)+'公斤。');
改成這樣寫比較好:
ShowMessage(Format('在下身高%d,体重%d。', [iHeight,iWeight]));

五、盡量多用With,它不儘效率高,而且使程式碼更加容易讀
if Sender if TEdit then
if (TEdit(Sender).Text=') or
(TEdit(Sender).Text[TEdit(Sender).SelStart]=') or
(TEdit(Sender).SelLength=Length(TEdit(Sender).Text)) and
(Key in ['a'..'z']) then
Key:=UpperCase(Key);
改成這樣寫比較好:
if Sender is TEdit then
with Sender as TEdit do
if (Text=') or (Text[SelStart]=') or
(SelLength=Length(Text)) and (Key in ['a'..'z'] then
Key:=UpCase(Key);

1 則留言:

匿名 提到...

但過度的縮減程式碼可能或造成可讀性的減少
比如
二、避免使用 if/then/if ,而用and来代替
太多AND 時就會造成可讀性的減少
或者
五、盡量多用With
會讓CODEING 除錯更麻煩

不知你是否也同意