delphi中var关键字
2012-02-01 06:57
232 查看
======================================================
注:本文源代码点此下载
======================================================
首先简短说明在delphi中var的作用。
var关键字在delphi 中是再普通不过的一个关键字, 大家都知道它的作用就是说明其后定义的是变量,局部变量不能在定义是赋初值, 全局变量可以设初值。
技术手册中如是 描述:全局变量会被初始化, 如integer型会被初始化为0 , 字符串为空,对象为nil。 但是局部变量不会被初始化。
而我在这里说的不是这些。 因为我碰到了一个问题。 是这样的,在一个类中有一个属性,
象这样:
ta = class
private
fp1 : integer;
public
propertyp1: integer read fp1 write fp2;
end;
如果如此有个方法,proceduresetsomeone(var tmp :integer);
这样使用这个方法;
var
a: ta;
begin
a := ta. create;
假设 ta在create时 fp1已经赋值了。
那么调用:
setsomeone(a.p1);
则提示错误。
constant object cannot be passed as var parameter
我的英语很差, 应该翻译如下:常量对象不能作为变参传递
如果去掉 setsomeone参数中的var 则编译通过。
经过我的研究和测试最终找到了答案, 在方法参数中var很重要,一个方法如果没有返回值即procedure,那么它传递参数的可能只有方法参数, 那么必须设置要传递的参数为var。 否则永远得不到想要的结果。
对象的属性(property)不能作为变参(var)。 必须定义一个中间变量来传递给property,否则提示错误。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
注:本文源代码点此下载
======================================================
首先简短说明在delphi中var的作用。
var关键字在delphi 中是再普通不过的一个关键字, 大家都知道它的作用就是说明其后定义的是变量,局部变量不能在定义是赋初值, 全局变量可以设初值。
技术手册中如是 描述:全局变量会被初始化, 如integer型会被初始化为0 , 字符串为空,对象为nil。 但是局部变量不会被初始化。
而我在这里说的不是这些。 因为我碰到了一个问题。 是这样的,在一个类中有一个属性,
象这样:
ta = class
private
fp1 : integer;
public
propertyp1: integer read fp1 write fp2;
end;
如果如此有个方法,proceduresetsomeone(var tmp :integer);
这样使用这个方法;
var
a: ta;
begin
a := ta. create;
假设 ta在create时 fp1已经赋值了。
那么调用:
setsomeone(a.p1);
则提示错误。
constant object cannot be passed as var parameter
我的英语很差, 应该翻译如下:常量对象不能作为变参传递
如果去掉 setsomeone参数中的var 则编译通过。
经过我的研究和测试最终找到了答案, 在方法参数中var很重要,一个方法如果没有返回值即procedure,那么它传递参数的可能只有方法参数, 那么必须设置要传递的参数为var。 否则永远得不到想要的结果。
对象的属性(property)不能作为变参(var)。 必须定义一个中间变量来传递给property,否则提示错误。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
相关文章推荐
- delphi中var关键字
- 原来JScript中的关键字'var'还是有文章的
- Delphi 关键字详解[整理于 "橙子" 的帖子]
- C#4.0的dynamic和var及object关键字辨析
- 关于var关键字的详解
- js中的关键字 var
- 原来JScript中的关键字'var'还是有文章的
- delphi 关键字
- JavaScript中的关键字'var'还是有文章的(转)
- Delphi 关键字和保留字
- 为什么在VS2010创建项目时选择net framework2.0的环境还可以使用var关键字?
- Delphi中set of关键字的含义是什么
- 为什么JavaScript声明变量的时候鼓励加var关键字
- [翻译]关键字“dynamic”和“object”(及“var”)有什么不同?
- Delphi关键字详解(转载自“万一”)
- Delphi 关键字详解[整理于 "橙子" 的帖子]
- Delphi 关键字详解
- JavaScript中的关键字"VAR"使用详解 分享
- Delphi学习之函数参数修饰中的var 、out和const
- Delphi 调用C/C++的Dll(stdcall关键字, 会导致函数名分裂. 此时函数名变成_stdadd@8)