变量前加下划线表示什么?(200分)

  • 主题发起人 主题发起人 readxlp
  • 开始时间 开始时间
R

readxlp

Unregistered / Unconfirmed
GUEST, unregistred user!
看下面定义:
constructor Create(_commport:integer;_baudrate,_baudrate2:longint;_trmno:byte;_posno:integer;_row:tstrings);
为什么每个变量前都加上下划线,是不是表示的传入的是地址位啊?
有什么意义?
row := _row(类的一属性)
当我传入的_row为StringGrid.Rows(StringGrid为窗体上的TStringGrid类控件),
是不是将StringGrid.Rows传入,以后改变
row的值就会改变StringGrid.Rows的值?
 
也是变量名的一种啊, 以字母或下划线开头, 这么经典的一句话你也忘了? :)
只不过一般以下划线开头的变量表示内部使用的
但你列出的这个是在参数列表里面,所以这样的命名不是太好。
 
代表的是内部变量
pascal经常用下划线代表内部变量。
 
只是变量的一种,以下划线开头和xxx_ddd:Integer等的都是一样的,只是去掉了前面的xxx,
 
我的意见和楼上的一样,也是变量,一般常代表内部变量。
当你传入的_row为StringGrid.Rows,因该说
row的值就会改变而不是改变StringGrid.Rows的值。
 
我觉得下划线主要是提醒你,这个变量与windows定义的同名变量是有区别的,比如最典型的是
IInterface = interface
['{00000000-0000-0000-C000-000000000046}']
function QueryInterface(const IID: TGUID
out Obj): HResult
stdcall;
function _AddRef: Integer
stdcall
//这里的_AddRef虽然于windows定义的AddRef重名(除了下划线),但实际内容不同。
function _Release: Integer
stdcall
// 同上
end;
 
个人习惯吧
 
savenight:
其实同名也是可以的, 加下划线的主要目的是为了告诉调用者,这两个方法是内部自己
会调用的,一般情况下不需要手工调用。
 
但好像我去掉下划线的效果不一样,去掉后不能更改界面上控件内容,加上则可!
 
》》。。。这个变量与windows定义的同名变量是有区别的
《《。。。这两个方法是内部自己会调用的,一般情况下不需要手工调用。
上面两句话没有矛盾,我的那句话意思更广(当然我并不知道语意扩大在这里是否完全合适,只是我的猜测而已)。
 
后退
顶部