| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1018 人关注过本帖
标题:自定义方法中对象作用参数传递时参数名如何来确定?
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏
已结贴  问题点数:20 回复次数:7 
自定义方法中对象作用参数传递时参数名如何来确定?
下面三张图是自定义方法的例子
其中对自定义方法调用时
单击命令按钮1时“thisform.cmdclk(this)”()中this好象是参数,这处参数如何来确定?为什么写this?
单击命令按钮2时“thisform.cmdclk(this)”
单击命令按钮3时“thisform.cmdclk(this)”
在表单中调用自定义方法中参数(对象作为参数)的传递,这个对象作为参数如何来确定?请行家指教!
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 如何 
2011-10-21 17:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这下就啰嗦了,很多东西要铺垫呢。

授人以渔,不授人以鱼。
2011-10-21 19:37
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
1、提刚性的来一点吧简明扼要来点。 括号内为什么用this?
2、需要哪些知识垫铺?
2011-10-21 20:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1.那是传递对象身份的参数,在面向对象编程中,这是一个叫“引用”的概念。
2.需要受过面向对象编程的训练才好理解,否则一切要从头讲起。

授人以渔,不授人以鱼。
2011-10-21 21:54
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
能最简单例子讲一下。
2011-10-21 22:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
This,其实与ThisForm是同样的概念,后者专用于Form控件,而前者是更广泛,可用于一切对象,它包含后者。“引用”,你可以把它理解为一个实体的别名。比如,你命名某个内存变量为x,这是它的一个名字,同样也可以把这一个实体也命名为y,此时x和y虽然是两个名称,但却是同一个东西的名字,当你修改y内容的时候,事实上用x也可以访问到所有的变化,即两个名字是完全等效的(回忆一下作为数据表工作区的别名)。

在你这里的例子中,是一个控件实体,"是它的内存变量真名,在Form1控件内部,This(因为是Form,所以也有专用的名字ThisForm)就是它自己,亦即是。因为作为类代码的编写,此时还不知道将被用于生成的对象实体叫什么名字,所以必须用这么一个特殊的名字来呼叫自己,一旦它被用于生成对象实体,则真实的名字就会与它绑定起来。CommandButton就是一个抽象类,此时它被生成三个对象实体(Command1、Command2和Command3),在每个对象实体内部的方法中,各自用This来指代自己,但此时三个的This实体其实不是同一个东西,Command1中This就是,在Form1中它也可以被叫作(或)。

明白了这些概念,就可以理解函数的使用法了:在Command1.Click事件代码中,调用函数ThisForm.CmdClk(This),This是参数,亦即告诉CmdClk,在你的代码中,x就是。假定是Command2调用CmdClk(This),此时x就是

确定参数This是什么,核心是当前是谁在发出指令,This就是自己。张三、李四都叫“我”,但“我”却是两个不同的实体,听的人不会根据“我”是同一个字就认为是同一个人,而是看谁在说“我”。就是这个道理。在VB中,也有同样的概念,那就是Me,C++之类也用This。

[ 本帖最后由 TonyDeng 于 2011-10-22 14:37 编辑 ]

授人以渔,不授人以鱼。
2011-10-22 05:44
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
解释的太到位了。谢谢。真是有求必应。
2011-10-22 14:32
dapinetree
Rank: 2
等 级:论坛游民
帖 子:29
专家分:34
注 册:2011-9-11
收藏
得分:0 
学习了。
2011-10-25 22:54
快速回复:自定义方法中对象作用参数传递时参数名如何来确定?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048892 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved