| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1987 人关注过本帖
标题:出一个问题考考大家
取消只看楼主 加入收藏
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
收藏
已结贴  问题点数:20 回复次数:9 
出一个问题考考大家
有如果一段代码需要重用n次
for i=1 to 10
   在这里会执行一个函数funcAny,这不在重用的范围
next

例如我们常常会编写出如下代码
code1:
for i=1 to 10
   print i
next

code2:
for i=1 to 10
   msgbox i+1
next

coden...
.
.

从上述代码很明显可以看出for i=1 to 10 ...next是重复了的,但其里面的函数却是不同的。
请问应如何重用for i=1 to 10 ...next这段代码?


[ 本帖最后由 ioriliao 于 2010-4-26 14:45 编辑 ]
搜索更多相关主题的帖子: 考考 
2010-04-26 14:42
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 2楼 Artless
这简单的例子当然看不出意义,你看看能否整合就是了,先别管意义。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-26 15:15
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 4楼 bczgvip
其实问题很简单的,我的意图不过是这样:
private sub someFunction(传递一个函数func入去)
   for i=1 to 10
      func
   next
end sub

 vb没有函数指针,这样的做法是不可行的。C语言则可。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-26 16:12
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 6楼 风吹过b
呵呵。。。当然是不能用指针的这种方法解决了。。。
我就想看看各位的高见。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-26 19:16
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 9楼 风吹过b
我所示的例子只一个简单的for next而已,实际应用中可不是那两句。
我的目的是探讨提高代码重用及弹性。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-26 21:25
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 11楼 风吹过b
dim fj() as string ,i as long
dim a(1 to 10) as long ,b(1 to 10) as long
  fj=split(text1.text ,vbcrlf )
  for i=0 to ubound(fj())   ''这个for ... next不会变的,用为了重用这个for ... next而不重用for next里面的东西
     call addcell(a(),fj(i)) ''我的问题所在这里是会变的   
  next i
  '上面四行与下面四行,也可以定义为一个过程进行复用代码
  fj=split(text2.text,vbcrlf)
  for i=0 to ubound(fj())
     call addcell(b(),fj(i))    '复用上面那个过程
  next i
  for i=1 to 10
    ? a(i);"-";b(i);"=";a(i)-b(i)
  next i


[ 本帖最后由 ioriliao 于 2010-4-26 22:57 编辑 ]

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-26 22:53
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 13楼 bczgvip
没有弹性, 因为for ...next里面的函数是会不同的,如果你用事件只能激发那个事件函数。
最好的办法是想办法如何在for next里插入一个函数。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-27 08:10
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 17楼 jiashie
这不是标准的解决方案

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-29 11:00
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 19楼 jiashie
标准答案https://bbs.bccn.net/thread-239594-1-1.html
我似乎一年前发的

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-30 10:21
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
回复 21楼 jiashie
呵呵。。。反射有反射的用途,接口的作用不一定要有反射配合才有用,接如果你对C#的反射有兴趣可以看一下我在C#版发的一些例子
https://bbs.bccn.net/viewthread.php?tid=229189&page=1#pid1763156
https://bbs.bccn.net/viewthread.php?tid=229384&page=1#pid1763153
https://bbs.bccn.net/thread-229413-1-1.html
https://bbs.bccn.net/thread-229410-1-1.html
https://bbs.bccn.net/thread-229411-1-1.html
https://bbs.bccn.net/thread-229189-1-1.html

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-30 15:10
快速回复:出一个问题考考大家
数据加载中...
 
   



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

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