由于使用上的原因,突然发现新语法糖的一个好用的地方,那就是强制转换,一般情况下,我们写的代码是这样的: procedure TTabbedwithNavigationForm.Button3Click(Sender: TObject); var ABtn: TButton; begin ABtn := TButton(Sender); if Assigned(ABtn) then ABtn.Tag := 1; end; 有了新版的语法糖,我们好像可以这样写了: procedure TTabbedwithNavigationForm.Button1Click(Sender: TObject); begin var ABtn: TButton := TButton(Sender); if Assigned(ABtn) then ABtn.Tag := 1; end; 正在开心的时候,发现问题了,如果我需要定义两个临时指针,那么只能这样写了: procedure TTabbedwithNavigationForm.Button1Click(Sender: TObject); begin var ABtn: TButton := TButton(Sender); var Btn2: TButton := TButton(Sender); if Assigned(ABtn) then ABtn.Tag := 1; end; 注意:为了定义多个变量,好像多写了一个var,好吧,改一下: procedure TTabbedwithNavigationForm.Button1Click(Sender: TObject); begin var ABtn, Btn2: TButton; ABtn := TButton(Sender); Btn2 := TButton(Sender); if Assigned(ABtn) then ABtn.Tag := 1; end; 最后,吐槽一下吧:有没有发现,跟c/c++比起来,感觉这个“var”字符好像脱裤子放屁?既然改了,干脆就把var给去掉呗,完全不影响使用啊!!!也能体现所谓现代语言的NB啊!!!同理,如果去掉var的强制声明,其实前置声明段(var段)可以完全去掉的呀!算了,本来语法糖就是脱裤子。。。 BTW:我是菜鸟,你们可以拿砖头过来了。。。
----------------------------------------------
Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!我去WC吐一会儿去!
用变量类型推断,不需要说明使用对象的类型,编译器可以直接推断出它的类型。 var I := 22; var s := 'Hello world'; var o := TObject.Create; var Btn := TButton(Sender);
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw