delphi中var关键字


======================================================
注:本文源代码点此下载
======================================================

首先简短说明在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^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值